Home>Article>Operation and Maintenance> Will the image in docker be updated automatically?
The image in docker will be automatically updated; you can use the Watchtower tool to automatically update the image. Watchtower is a tool that can monitor whether the running container image is updated. When there is a difference between the local image and the remote image, you can Automatically recreate a new container with a new image using the running parameters of the current container, and delete the old container.
The operating environment of this tutorial: linux7.3 system, docker version 19.03, Dell G3 computer.
watchtower is a tool that can monitor whether the running container image has been updated. When there is a difference between the local image and the remote image, the current container's image can be automatically used. Run parameters to recreate a new container with the new image and delete the old container.
When using Docker, some images may need to be updated frequently. Usually, updating the container manually is cumbersome and requires four steps:
1. Stop the container docker stop
2. Delete the container docker rm
3. Check the image update status and update the image docker pull
4. Restart the container docker run ……
It is better to have fewer containers. If there are a large number of containers that need to be updated, it will generate a huge workload. Now I will introduce you to a way to automatically update containers. This method is also applicable to Docker under Synology.
Watchtower monitors running containers and monitors whether the images when those containers are initially started need to be updated. When Watchtower detects that an image has changed, it will use the new image and automatically restart the corresponding container using the same parameters. At the same time, Watchtower itself is also packaged as a Docker image. You can use Watchtower to monitor all containers with one line of commands, and then all containers will be automatically updated, including Watchtower itself.
Quick Start
Watchtower itself is packaged as a Docker image, so you can run it like any other container. In other Docker environments, use the Docker command to download the image directly. :
docker pull containrrr/watchtower
Docker in Synology can be searched and downloaded directly from the registry:
Other Docker execution commands
docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \
Use the above The code can start the watchtower container in the background and monitor the updates of all current images. Because watchtower needs to interact with the Docker API to monitor running containers, you need to add the -v parameter when using it to map /var/run/docker.sock into the container.
Use Synology’s scheduled task to run watchtower in Synology
Open the Synology task plan, create a new scheduled task-user-defined script, fill in the Enter the following script, run it once, update all containers, and clear old containers
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once
You can set it to run automatically in the scheduled task, or run it manually when needed. All containers are then automatically updated, including the Watchtower itself.
Option parameters
By default, watchtower will monitor all containers running within the Docker daemon it points to. But you can also specify the name of a specific container when starting watchtower to monitor only those specific containers. For example:
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once nginx redis
At this time watchtower will only monitor containers named "nginx" and "redis", and all other running containers will be ignored. If you don't want to run watchtower in the background, you can add the --run-once parameter and the watchtower container will execute in the foreground.
Use the --cleanup parameter to automatically delete the old image after the update
Use --monitor-only will only monitor the new image and send notifications, and will not update the container
Use --interval to set the update detection interval in seconds. For example, to check for updates every hour, it is --interval 3600
. For more specific usage methods, you can view the official documentation of watchtower. Only two commonly used methods are listed here. Because Synology can use automatically scheduled tasks, you don’t need to use the --interval parameter.
Recommended learning: "docker video tutorial"
The above is the detailed content of Will the image in docker be updated automatically?. For more information, please follow other related articles on the PHP Chinese website!