Docker의 이미지는 자동으로 업데이트됩니다. Watchtower 도구를 사용하면 실행 중인 컨테이너 이미지가 업데이트되는지 여부를 모니터링할 수 있습니다. 이미지를 사용하는 경우 현재 컨테이너를 자동으로 사용할 수 있습니다. 새 이미지로 새 컨테이너를 다시 만들고 이전 컨테이너를 삭제합니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, docker 버전 19.03, Dell G3 컴퓨터.
watchtower는 실행 중인 컨테이너 이미지가 업데이트되었는지 모니터링할 수 있는 도구입니다. 로컬 이미지와 원격 이미지에 차이가 있는 경우 자동으로 현재 컨테이너의 실행 매개변수를 사용할 수 있습니다. 새 이미지로 새 이미지를 만들고 이전 컨테이너를 삭제합니다.
Docker를 사용할 때 일부 이미지를 자주 업데이트해야 할 수 있습니다. 일반적으로 컨테이너를 수동으로 업데이트하는 것은 번거롭고 다음 네 단계가 필요합니다.
1. 컨테이너 docker stop
2. ; CONTAINER>
3. 이미지 업데이트 상태를 확인하고 docker pull
4. 컨테이너 docker run
컨테이너 수가 많은 경우 업데이트가 필요하므로 엄청난 작업 부하가 발생합니다. 이제 컨테이너를 자동으로 업데이트하는 방법을 소개하겠습니다. 이 방법은 Synology의 Docker에도 적용 가능합니다.
Watchtower는 실행 중인 컨테이너를 모니터링하고 해당 컨테이너가 처음 시작될 때 이미지를 업데이트해야 하는지 여부를 모니터링합니다. Watchtower는 이미지가 변경되었음을 감지하면 새 이미지를 사용하고 동일한 매개변수를 사용하여 해당 컨테이너를 자동으로 다시 시작합니다. 동시에 Watchtower 자체도 Docker 이미지로 패키지되어 있습니다. Watchtower를 사용하여 한 줄의 명령으로 모든 컨테이너를 모니터링하면 Watchtower 자체를 포함한 모든 컨테이너가 자동으로 업데이트됩니다.
빠른 시작
Watchtower 자체는 Docker 이미지로 패키지되어 있으므로 다른 컨테이너처럼 실행할 수 있습니다. 다른 Docker 환경에서는 Docker 명령을 사용하여 이미지를 직접 다운로드할 수 있습니다.
docker pull containrrr/watchtower
Qunhui의 Docker는 직접 다운로드할 수 있습니다. 레지스트리 검색으로 이동하여 다운로드하세요:
기타 Docker 실행 명령
docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \
위 코드를 사용하여 백그라운드에서 watchtower 컨테이너를 시작하고 모든 현재 이미지의 업데이트를 모니터링하세요. Watchtower는 실행 중인 컨테이너를 모니터링하기 위해 Docker API와 상호 작용해야 하기 때문에 이를 사용하여 /var/run/docker.sock을 컨테이너에 매핑할 때 -v 매개 변수를 추가해야 합니다.
Synology의 예약 작업을 사용하여 Synology에서 Watchtower 실행
Synology 작업 계획 열기, 새 예약 작업 생성(사용자 정의 스크립트), 다음 스크립트 입력, 한 번 실행, 모든 컨테이너 업데이트 및 이전 컨테이너 지우기
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once
는 예약된 작업에서 자동으로 실행되도록 설정하거나 필요할 때 수동으로 실행되도록 설정할 수 있습니다. 그러면 Watchtower 자체를 포함하여 모든 컨테이너가 자동으로 업데이트됩니다.
옵션 매개변수
기본적으로 watchtower는 자신이 가리키는 Docker 데몬 내에서 실행되는 모든 컨테이너를 모니터링합니다. 그러나 Watchtower를 시작할 때 특정 컨테이너의 이름을 지정하여 특정 컨테이너만 모니터링할 수도 있습니다. 예:
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once nginx redis
현재 watchtower는 "nginx" 및 "redis"라는 이름의 컨테이너만 모니터링하며, 실행 중인 다른 모든 컨테이너는 무시됩니다. watchtower를 백그라운드에서 실행하고 싶지 않은 경우 --run-once 매개변수를 추가하면 watchtower 컨테이너가 전경에서 실행됩니다.
업데이트 후 이전 이미지를 자동으로 삭제하려면 --cleanup 매개변수를 사용하세요.
--monitor-only를 사용하면 새 이미지를 모니터링하고 알림만 보낼 수 있으며 컨테이너는 업데이트되지 않습니다.
업데이트를 설정하려면 --interval을 사용하세요. 감지 간격, 단위는 초입니다. 예를 들어 매시간 업데이트를 확인하려면 --interval 3600
입니다. 보다 구체적인 사용 방법은 watchtower 공식 문서를 참조하세요. 여기에는 일반적으로 사용되는 두 가지 방법만 나열되어 있습니다. Synology는 자동으로 예약된 작업을 사용할 수 있으므로 --interval 매개 변수를 사용할 필요가 없습니다.
추천 학습: "docker 비디오 튜토리얼"
위 내용은 Docker의 이미지가 자동으로 업데이트되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!