dockerd를 통해 컨테이너가 자동으로 시작되지 않도록 비활성화하는 방법(docker가 실행되지 않을 때)?

dockerd를 통해 컨테이너가 자동으로 시작되지 않도록 비활성화하는 방법(docker가 실행되지 않을 때)?

dockerd유지 관리가 필요한 시스템이 있는데 docker 명령을 실행할 수 있도록 부팅하고 싶습니다 .하지만기존 컨테이너가 자동으로 시작되는 것을 원하지 않습니다.. 예를 들어 유지 관리 모드 또는 시스템 업그레이드 상황에서 유용합니다. 이 문제를 해결할 수 있는 옵션을 찾을 수 없습니다.

답변1

실제 답변은 아니지만 해결 방법은 다음과 같습니다.

디스플레이 용기 RestartPolicy:

find /var/lib/docker/containers/ -type f -name hostconfig.json \
-exec grep -o '"RestartPolicy[^}]*}'  {} +

이러한 정책을 "안함"으로 변경하기 위해 다음 스크립트를 사용했습니다.

find /var/lib/docker/containers/ -type f -name hostconfig.json \
-exec grep -o '"RestartPolicy[^}]*}'  {} + |
  grep -v '"never"'  |
  cut -d: -f1
  xargs -r \
    sed  -i 's/\("RestartPolicy":{"Name":\)"[^"]*"/\1"no"/'

그런 다음 docker를 시작하면 모든 컨테이너가 비활성화됩니다. 그러나 자동 시작 설정 재설정은 수동으로 수행해야 합니다.

관련 정보