program story

도커-컨테이너에서 자동 다시 시작을 어떻게 비활성화합니까?

inputbox 2020. 7. 26. 13:02
반응형

도커-컨테이너에서 자동 다시 시작을 어떻게 비활성화합니까?


로 자동 다시 시작을 활성화 할 수 --restart=always있지만 컨테이너를 중지 한 후 해당 속성을 끄려면 어떻게해야합니까?

나는 일반적으로 웹 서버를 실행하고 일반적으로 포트 80을 매핑합니다.

docker run -d --restart=always -p 80:80 -i -t myuser/myproj /bin/bash

그러나 최신 버전의 이미지를 실행하고 싶을 때도 있지만 이전 컨테이너를 유지하고 싶습니다. 문제는로 여러 개의 컨테이너가있는 경우 --restart=always호스트의 포트 80에 대해 모두 경쟁하기 때문에 컨테이너 중 하나 (임의?) 만 시작한다는 것입니다.


--restart=unless-stopped@Shibashis가 언급 한대로이 옵션을 사용 하거나 재시작 정책을 업데이트 할 수 있습니다 (도커 1.11 이상이 필요함).

참고 항목 에 대한 문서docker update도커 다시 시작 정책을 .

docker update --restart=no my-container

기존 컨테이너의 재시작 정책을 업데이트합니다 ( my-container).


로 컨테이너를 시작할 수 있습니다 --restart=unless-stopped.


컨테이너를 다시 시작하는 떼가있는 경우 다시 시작 옵션에 관계없이 떼를 시작하거나 rm 한 컨테이너가 다시 시작됩니다. 그것은 버그가 아닌 기능입니다.

잊어 버린 서비스를 실행하고 있지 않은지 확인하십시오.

docker service ls

그런 다음 서비스를 중지 할 수 있습니다

docker service rm <service id discovered with previous command>

TL & DR :

아래를 사용하여 실행중인 모든 컨테이너를 비활성화하십시오.

docker update --restart=no $(docker ps -a -q)

SINGLE 컨테이너를 다시 시작하지 않으려면 다음을 사용하십시오.

docker update --restart=no the-container-you-want-to-disable-restart

합리적인 :

Docker는 컨테이너가 종료 될 때 또는 Docker가 다시 시작될 때 컨테이너가 자동으로 시작되는지 여부를 제어하는 ​​다시 시작 정책을 제공합니다. Docker가 키 서비스를 실행할 때 매우 유용합니다.

노트

docker-compose를 사용하는 경우 이것이 유용 할 수 있습니다.

restart no는 기본 재시작 정책이며 어떤 상황에서도 컨테이너를 재시작하지 않습니다. always가 지정되면 컨테이너가 항상 다시 시작됩니다. 종료 코드가 실패시 오류를 표시하면 실패시 정책이 컨테이너를 다시 시작합니다.

restart: "no"
restart: always
restart: on-failure
restart: unless-stopped

restart: always

참고 URL : https://stackoverflow.com/questions/37599128/docker-how-do-you-disable-auto-restart-on-a-container

반응형