도커: 이미 만든 컨테이너에 다시 시작 정책 추가
도커는 예를 들어 재부팅 시 컨테이너 재시작을 처리하기 위해 재시작 정책이라는 것을 추가했습니다.
이것은 매우 유용하지만, restart policy 명령은 다음과 같이 작동합니다.docker run
그리고 아닌docker start
그래서 제 질문은:
이전에 이미 생성된 컨테이너에 재시작 정책을 추가할 수 있는 방법이 있습니까?
도커의 최신 버전(1.11 기준)에는 다음과 같은 명령이 있습니다.
docker update --restart=always <container>
RestartPolicy를 수정하는 두 가지 방법이 있습니다.
- 컨테이너 ID를 찾아 전체 도커 서비스를 중지하고 /var/lib/docker/Containers/Containers_를 수정합니다.ID/hostconfig.json을 선택하고 재시작 정책 -> 이름을 "항상"으로 설정한 후 도커 서비스를 시작합니다.
docker commit
컨테이너를 새 이미지로 만들고 현재 컨테이너를 중지 및 설정한 다음 이미지로 새 컨테이너를 시작합니다.
사용.--restart=always
정책은 재부팅 시 기존 컨테이너의 재시작을 처리합니다.
문제는 여러 개의 컨테이너가 있는 경우--restart=always
도커에서 설명한 대로 최신 버전의 이미지를 실행할 때 컨테이너에서 자동 검색을 비활성화하려면 어떻게 해야 합니까?
컨테이너가 있을 때 자동으로 제거를 시도하는 byput 옵션
docker run --rm
또한 문제가 될 것입니다.--restart=always
서로 상충되는 정책입니다.
$ docker run --rm --restart always <image>
Conflicting options: --restart and --rm
따라서 이 경우에는 중지되지 않은 경우 정책 재시작이라는 다른 옵션을 선택하는 것이 좋습니다.
$ docker run --rm --restart unless-stopped <image>
이 정책은 다음과 충돌하지 않습니다.docker run --rm
그러나 도커 설명서에서 설명한 바와 같이:
와 유사합니다.
--restart=always
컨테이너가 (수동으로 또는 다른 방식으로) 중지되면 Docker 데몬이 재시작된 후에도 재시작되지 않습니다.
그래서 이것을 사용할 때.--restart unless-stopped
터미널을 닫을 때 실수로 중지된 경우 다시 시작이 작동하는지 확인하려면 다음과 같이 다른 터미널에서 한 번 수행합니다.
$ docker ps
$ docker restart <container>
이전 셸에서 킬링 프로세스가 끝날 때까지 기다렸다가 셸을 닫고 그냥 나갑니다(종료하지 마십시오).
그리고 컨테이너가 여전히 실행 중인지 여부를 나머지 터미널에서 다시 확인합니다.
$ docker ps
아직 실행 중인 경우 안전하게 재부팅하고 응용 프로그램이 다시 시작되고 있는지 다시 확인하여 여러 용기를 사용하지 않고 도커가 깨끗한지 확인할 수 있습니다.
언급URL : https://stackoverflow.com/questions/26852321/docker-add-a-restart-policy-to-a-container-that-was-already-created
'programing' 카테고리의 다른 글
스크롤바가 있는 경우에도 div를 항상 페이지 내용의 맨 아래에 유지 (0) | 2023.08.13 |
---|---|
jQuery를 사용하여 선택한 확인란의 값을 가져옵니다. (0) | 2023.08.13 |
MariaDB Java Client 1.5.7이 JDBC 4.2와 호환됩니까? (0) | 2023.08.13 |
텍스트 보기 - 텍스트 크기를 프로그래밍 방식으로 설정하면 작동하지 않는 것 같습니다. (0) | 2023.08.13 |
mariadb Regexp 저장 프로시저에서 때때로 빈 상태로 반환됩니다. (0) | 2023.08.13 |