내 Docker 컨테이너는 docker-compose를 사용하여 구축되었으며 다음 파생물을 사용하여 CentOS 7 시스템에서 자동으로 시작합니다.문서화 예::
[Unit]
Description=condb container
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a condb
ExecStop=/usr/bin/docker stop -t 2 condb
[Install]
WantedBy=local.target
컨테이너를 변경하려고 할 때마다 서비스를 중지하고 docker-compose up
컨테이너를 생성하기 위해 실행한 다음 서비스를 시작하고 up
컨테이너를 시작한 것을 잊어버렸다는 점을 제외하면 모든 것이 잘 작동합니다.
이 문제에 대해 스크립트를 조정하여 컨테이너를 실행한 후 컨테이너를 중지할 수 있지만 docker-compose
시작/종료에는 시간이 걸리며 컨테이너를 시작하지 않고 컨테이너를 생성할 수 있는 방법이 있는지 알고 싶습니다(명령은 build
빌드일 뿐입니다 up
. 빌드 생성을 시작하는 데 도움이 됨)?
답변1
docker compose의 소스에는 이미create
주문하다, 그러나 아직 1.5.2에는 없으며 웹사이트에 문서화되어 있지 않습니다. 물론 github 소스에서 설치하여 최신(아직 출시되지 않은) 기능을 얻을 수 있습니다.
또는 를 사용하여 개별 컨테이너를 시작하지 않고 대신 YAML 파일에서 docker-compose를 실행하도록 systemd
파일을 변경할 수 있습니다 .docker
[Service]
Restart=always
ExecStart=/opt/util/docker-compose/bin/docker-compose -f /opt/docker/mongo/docker-compose.yml up --no-recreate
ExecStop=/opt/util/docker-compose/bin/docker-compose -f /opt/docker/mongo/docker-compose.yml stop
그런 다음 사용을 중지 하고 파일을 systemctl stop ...
변경한 후 사용을 시작할 수 있습니다 . 하지만 결합된 설정의 컨테이너 중 하나가 실패하면 올바르게 다시 시작될지 확실하지 않습니다.docker-compose.yml
systemctl start ...