docker-compose.yml에 정의 된 서비스 범위가 있습니다. 이 서비스는 시작되었습니다. 이 중 하나만 다시 빌드하고 다른 서비스를 시작하지 않고 시작해야합니다. 다음 명령을 실행합니다.
docker-compose up -d # run all services
docker-compose stop nginx # stop only one. but it still running !!!
docker-compose build --no-cache nginx
docker-compose up -d --no-deps # link nginx to other services
결국 나는 오래된 nginx 컨테이너를 얻었습니다. 그런데 docker-compose는 실행중인 모든 컨테이너를 죽이지 않습니다!
답변
$docker-compose up -d --no-deps --build <service_name>
–no-deps-링크 된 서비스를 시작하지 않습니다.
–build-컨테이너를 시작하기 전에 이미지를 빌드합니다.
답변
docker-compose 1.19 포함 up
docker-compose up --build --force-recreate --no-deps [-d] [<service_name>..]
하나 이상의 service_name
인수가 없으면 모든 컨테이너가 다시 작성됩니다
도움말 메뉴에서
Options:
-d, --detach Detached mode: Run containers in the background,
print new container names. Incompatible with
--abort-on-container-exit.
--no-deps Don't start linked services.
--force-recreate Recreate containers even if their configuration
and image haven't changed.
--build Build images before starting containers.
답변
문제를 해결해야합니다.
docker-compose ps # lists all services (id, name)
docker-compose stop <id/name> #this will stop only the selected container
docker-compose rm <id/name> # this will remove the docker container permanently
docker-compose up # builds/rebuilds all not already built container
답변
@ HarlemSquirrel이 게시 한 것처럼 최고이며 올바른 해결책이라고 생각합니다.
그러나 OP 관련 문제에 대답하려면 docker-compose.yml
파일의 모든 서비스를 다시 만들지 않고 nginx
하나의 서비스 만 다시 만들려는 것이기 때문에 다음 명령과 같아야합니다 .
docker-compose up -d --force-recreate --no-deps --build nginx
옵션 설명 :
Options:
-d Detached mode: Run containers in the background,
print new container names. Incompatible with
--abort-on-container-exit.
--force-recreate Recreate containers even if their configuration
and image haven't changed.
--build Build images before starting containers.
--no-deps Don't start linked services.
답변
어쩌면이 단계는 정확하지 않지만 다음과 같이합니다.
도커 중지 구성 : $ docker-compose down
컨테이너를 제거하십시오. $ docker system prune -a
도커 작성 시작 : $ docker-compose up -d
답변
간단히 사용하십시오 :
docker-compose build [yml_service_name]
교체 [yml_service_name]
에 서비스 이름과 docker-compose.yml
파일. docker-compose restart
변경 사항을 적용하는 데 사용할 수 있습니다 . --no-cache
캐시를 무시하는 데 사용할 수 있습니다 .
답변
문제는:
$ docker-compose stop nginx
작동하지 않았습니다 (아직 실행 중이라고 말함). 당신이 어쨌든 그것을 재건하려고한다면, 당신은 그것을 죽일 수 있습니다.
$ docker-compose kill nginx
그래도 작동하지 않으면 도커로 직접 중지하십시오.
$ docker stop nginx
또는 삭제
$ docker rm -f nginx
그래도 작동하지 않으면 도커 버전을 확인하십시오. 업그레이드 할 수 있습니다.
버그 일 수 있습니다. 시스템 / 버전과 일치하는지 확인할 수 있습니다. 예를 들면 다음과 같습니다.
https://github.com/docker/docker/issues/10589
https://github.com/docker/docker/issues/12738
해결 방법으로 프로세스를 종료하려고 할 수 있습니다.
$ ps aux | grep docker
$ kill 225654 # example process id