介绍
正在运行的容器中的 Docker 镜像不会自动更新。使用镜像创建容器后,它会继续运行该版本,即使在新版本发布之后也是如此。
建议从最新的 Docker 镜像运行容器,除非你有使用旧版本的特定原因。
如何将Docker镜像和容器更新到最新版本?在本教程中,你将学习如何将 Docker 镜像和容器更新到最新版本。
先决条件
- 访问命令行/终端窗口
- 具有sudo 权限的用户帐户
- 现有的 Docker 安装
- 一个现有的 Docker 容器和 Docker 镜像
将 Docker 镜像和容器更新到最新版本
Docker镜像和容器如何更新到最新版本?使用最新镜像更新现有容器的最佳方法是下载最新镜像并启动具有相同配置的新容器。按照下面列出的步骤使用最新的 Docker 映像更新你的容器。
注意:本教程以运行 MySQL Docker 容器为例来说明如何将 Docker 镜像和容器更新到最新版本。
步骤 1:检查当前版本
通过使用以下命令列出系统上的图像来验证你有一个过时的图像:
sudo docker images
输出显示下载的图像及其标签(版本号)。在下面的示例中,系统显示它正在使用mysql映像版本5.7.31。DockerHub 上列出的Docker 官方 MySQL 映像显示最新版本(在撰写本文时)为8.0.21。
因此,如果你在该映像上运行了一个容器,最好对其进行更新。
注意:要仅列出可能已过时的特定图像,请使用docker images | grep [docker_image]命令缩小搜索范围。
第 2 步:拉取最新镜像
使用以下docker pull
命令下载较新版本的映像:
sudo docker pull [docker_image]
默认情况下,Docker 会拉取最新版本。为确保这样做,你可以添加:latest
标签。
例如,要拉取最新的 mysql 映像,你可以运行:
sudo docker pull mysql/mysql-server:latest
第 3 步:启动一个新的更新容器
如何将Docker镜像和容器更新到最新版本?下载最新的 Docker 镜像后,你需要停止并删除旧容器。然后,用最新的图像创建一个新的。
1. 通过列出系统上的容器,找到带有过期镜像的正在运行的容器的名称:
sudo docker ps
在此示例中,输出显示使用mysql/mysql-server:5.7.31映像的容器。
2. 停止并删除现有容器,以便你可以启动一个同名的新容器:
sudo docker stop [container_id]
sudo docker rm [container_id]
替换[container_id]
为容器的 ID 号。
3.docker run
使用更新后的 Docker 镜像,使用命令和所需的配置重新创建容器:
sudo docker run --name=[container_name] [options] [docker_image]
如果有,请确保挂载分配给以前使用的容器的 Docker 卷,以确保更新的容器具有相同的内容。为此,请使用-v
后跟卷目录路径的选项。
例如,要运行更新 MySQL 容器,你将运行:
sudo 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镜像和容器如何更新到最新版本?有了这个,你应该已经使用最新版本的 Docker 镜像成功更新了你的 Docker 容器。
想要了解有关管理容器的更多信息?阅读有关管理 Docker 容器的最佳实践的所有信息。