시스템 시동 시 도커 컴포지트 업-데이터를 실행하는 방법은?
시작 지점에서 컨테이너를 자동으로 시작하도록 하려면 다음 명령을 추가하려고 했습니다.
cd directory_has_docker-compose.yml && docker-compose up -d/etc/rc.local에서
기계를 재부팅하면 용기가 작동하지 않습니다.
실행방법docker-compose up -d시스템 시동 시?
우리가 사용할때crontab또는 감가상각 대상자들./etc/rc.local파일, 지연이 필요합니다(예:sleep 10, 시스템 서비스를 사용할 수 있는지 확인합니다.보통,systemd(또는upstart)는 시스템 부팅 시 시작되는 서비스를 관리하는 데 사용됩니다.이와 유사한 구성을 사용해 볼 수 있습니다.
# /etc/systemd/system/docker-compose-app.service
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/srv/docker
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
아니면, 만약 당신이 그들을 제외하고 달리길 원한다면,-d플래그:
# /etc/systemd/system/docker-compose-app.service
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
StartLimitIntervalSec=60
[Service]
WorkingDirectory=/srv/docker
ExecStart=/usr/local/bin/docker-compose up
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0
Restart=on-failure
StartLimitBurst=3
[Install]
WantedBy=multi-user.target
변경합니다.WorkingDirectory도커화된 프로젝트 경로로 파라미터를 지정합니다.서비스를 자동으로 시작할 수 있도록 합니다.
systemctl enable docker-compose-app
당신의docker.service시스템 시작 시 활성화됨
$ sudo systemctl enable docker
그리고 당신의 서비스는docker-compose.yml가지다
restart: always
아래 명령어를 한 번만 실행하면 시스템을 재부팅하면 모든 서비스가 실행됩니다.
docker-compose up -d
다음을 추가할 수 있어야 합니다.
restart: always
다시 시작하려는 모든 서비스에 대해docker-compose.yml파일.
참조: https://github.com/compose-spec/compose-spec/blob/master/spec.md#restart
restart 사용: 항상 사용자의docker-compose.yaml파일.
Docker-compose up -d이미지에서 컨테이너를 다시 시작합니다. 사용합니다.docker-compose start정지된 컨테이너를 시작하기 위해 이미지에서 새 컨테이너를 시작하지 않습니다.
nginx:
restart: always
image: nginx
ports:
- "80:80"
- "443:443"
links:
- other_container:other_container
또한 다른 컨테이너와 종속성이 있는 경우 도커 파일에 코드를 작성하여 먼저 생성할 수 있습니다.
나는 노력했다.restart: always, 일부 컨테이너(php-fpm 등)에서 작동하지만 일부 컨테이너(nginx 등)는 재부팅 후에도 다시 시작되지 않는 문제에 직면했습니다.
문제를 해결했습니다.
crontab -e
@reboot (sleep 30s ; cd directory_has_dockercomposeyml ; /usr/local/bin/docker-compose up -d )&
restart: unless-stopped
도커- compose.yml
에 추가로user39544의 대답, 또 하나의 유형의 구문은crontab -e:
@reboot sleep 60 && /usr/local/bin/docker-compose -f /path_to_your_project/docker-compose.yml up -d
다시 시작 정책을 사용하기 위해 도커는 다음 옵션을 제공합니다.
아니오: 컨테이너가 자동으로 다시 시작되지 않습니다.
온 failure[:max-retries]:종료 코드가 0이 아닌 상태로 종료되면 컨테이너를 다시 시작하고, 도커 데몬이 컨테이너를 다시 시작하도록 최대 시도 횟수를 제공합니다.
always: 용기가 멈추면 항상 다시 시작합니다.
stopped가 아닌 경우:컨테이너가 임의로 정지되거나 도커 데몬에 의해 정지되지 않는 한 항상 컨테이너를 다시 시작합니다.
나를 위해 일했습니다(약간 변형):
crontab -e를 선택한 다음 아직 선택하지 않은 경우 nano editor를 선택합니다.파일 하단에 @reboot에서 &:로 한 줄을 추가합니다.
@reboot(sleep 10s; cd/usr/local/searxng-docker; /usr/bin/docker-compose up-d)&
과 "(docker-composition)"의를 기준으로 .라는 공통 위치에 기반하여
-ker rxng -ker"더입니다. to 2령 "cd to 2 cd to"합니다를 합니다.
실제 search xng-docker folder" 를 실행하고 컨테이너 시작 "composeer-dock up-d" 명령을 실행합니다입니다.
언급URL : https://stackoverflow.com/questions/43671482/how-to-run-docker-compose-up-d-at-system-start-up
'programing' 카테고리의 다른 글
| 데이터베이스 오류: 데이터베이스 mydatabase MySQL을 사용할 수 없습니다. 오류: 0() 세션이 중지되었습니다. (0) | 2023.09.24 |
|---|---|
| wordpress permlink show "web.config now." in godaddy (0) | 2023.09.24 |
| 웹 워커의 사용 사례는 무엇입니까? (0) | 2023.09.24 |
| 각 지시어에 자체 컨트롤러가 필요합니까? (0) | 2023.09.24 |
| Eclipse에서 XML 코드 서식 지정 (0) | 2023.09.24 |