docker compose는 컨테이너를 시작하지 않고 컨테이너를 생성합니다.

docker compose는 컨테이너를 시작하지 않고 컨테이너를 생성합니다.

내 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.ymlsystemctl start ...

관련 정보