Образы Docker в работающем контейнере не обновляются автоматически. После того, как вы использовали образ для создания контейнера, он продолжает работать с этой версией даже после выхода новых выпусков.
Рекомендуется запускать контейнеры из последнего образа Docker, если у вас нет особой причины использовать более старую версию.
В этом руководстве вы узнаете, как обновить образ и контейнер Docker до последней версии.
Обнолвение образа и контейнера Docker до последней версии
Лучший способ обновить существующий контейнер c новым образом - загрузить последний образ и запустить новый контейнер с той же конфигурацией. Следуйте инструкциям ниже, чтобы обновить свой контейнер до новейшего образа Docker.
Примечание. В этом руководстве используется пример запуска контейнера MySQL Docker, чтобы проиллюстрировать, как обновить образ и контейнер Docker до последней версии.
Шаг 1. Проверьте текущую версию
Убедитесь, что у вас устаревший образ, выведя список образов в вашей системе с помощью команды:
sudo docker images
Тут отображаются загруженные изображения и их теги (номера версий). В приведенном ниже примере система показывает, что она использует образ mysql версии 5.7.31. Официальные образы MySQL от Docker, перечисленные на DockerHub, показывают, что последняя версия - 8.0.21.
Поэтому, если у вас есть контейнер, работающий с этим образом, лучше его обновить.
Чтобы указать только определенный образ, который может быть устаревшим, используйте docker images | grep [docker_image]
, чтобы сузить поиск.
Шаг 2. Скачайте новейший образ
Загрузите более новую версию образа с помощью команды docker pull
:
docker pull [docker_image]
По умолчанию Docker загружает последнюю версию. Чтобы убедиться в этом, вы можете добавить тег :latest
.
Например, чтобы получить последний образ mysql, вы должны запустить:
docker pull mysql/mysql-server:latest
Шаг 3. Запустите новый обновленный контейнер
После того, как вы загрузили последний образ Docker, вам необходимо остановить и удалить старый контейнер. Затем создайте новый с последним образом.
1. Найдите имя запущенного контейнера с устаревшим образом, перечислив контейнеры в системе:
docker ps
В этом примере на выходе показан контейнер с образом mysql / mysql-server: 5.7.31.
2. Остановите и удалите существующий контейнер, чтобы вы могли запустить новый под тем же именем:
docker stop [container_id] docker rm [container_id]
3. Воссоздайте контейнер с помощью команды docker run
и желаемой конфигурации, используя обновленный образ Docker:
docker run --name=[container_name] [options] [docker_image]
Если он у вас есть, обязательно смонтируйте том Docker, назначенный ранее использовавшемуся контейнеру, чтобы обновленный контейнер имел такое же содержимое. Для этого используйте параметр -v
, за которым следует путь к каталогу тома.
Например, чтобы запустить обновленный контейнер MySQL, вы должны запустить:
docker run --name=mysql --restart=always -e MYSQL_ROOT_PASSWORD=mypassword -v /path/to/directory:/var/lib/mysql -d mysql
4. Вы можете проверить, обновлен ли ваш контейнер последней версией образа Docker, таким образом:
sudo docker ps
Таким образом, вы должны были успешно обновить свой контейнер Docker.