로컬 Docker 이미지가 변경되지 않았는지 확인하기 위해 모든 시스템에서 실행되는 범용 시스템 초기화 도구를 구축하려고 합니다. 이 도구는 어떤 컨테이너를 실행해야 하는지 알지 못하며, 시스템이 시작(또는 재부팅)될 때마다 실행되어 시스템에 있는 Docker 이미지의 ID와 무결성을 확인합니다. 내 질문은 Docker를 시작하고 다시 시작 정책이 설정된 컨테이너를 시작하지 않도록 지시하는 것이 가능합니까? 기본적으로 컨테이너를 시작하지 않고도 Docker를 시작할 수 있나요?
두 번째 질문은 첫 번째 질문에 도움이 될 수 있습니다. 데몬이 시작될 때 다시 시작해야 하는 컨테이너를 결정하기 위해 데몬이 사용하는 구성 파일은 어디에 있습니까?
답변1
다시 시작 정책을 저장하는 컨테이너 구성 파일은 /var/lib/docker/containers/HASH/hostconfig에 있습니다.
"RestartPolicy":{"Name":"always","MaximumRetryCount":0}
1- 도커를 중지하려는 경우:
sudo systemctl stop docker
2-변경 언제나도착하다전혀/var/lib/docker/containers/HASH/hostconfig에서.
3-Docker 서비스를 시작합니다.
sudo systemctl start docker
컨테이너 자동 시작이 비활성화됩니다.
하지만 간단한 구문을 사용하면 어떨까요?
sudo update --restart=none <container_id>
다른 방법이름을 바꿀 수 있습니다/var/lib/docker/컨테이너:
1- 도커 중지
2- 컨테이너 폴더를 다시 /var/lib/docker/containers/로 변경합니다.
3- 도커 시작
답변2
Docker 가 구성 정보(다시 시작 정책 포함) hostconfig.json
를 /var/lib/docker/containers/
. 그러면 제가 확인할 수 있습니다. 일을 다시 시작하기 위해 저는 그 반대로 했습니다./var/lib/docker/containers/301849...5917f/hostconfig.json
/var/lib/docker/containers/
- 도커 중지
- 컨테이너 폴더를 다시 다음으로 변경하십시오.
/var/lib/docker/containers/
- 도커 다시 시작
다시 시작 정책으로 구성된 모든 컨테이너가 다시 시작되었으며 모든 것이 정상입니다.