在使用 docker 时,我们经常使用最新的容器镜像来运行我们的微服务,但是 docker run 或者 docker compose 发现 docker 镜像的标签已经在本地服务器了,它不再会从注册服务 (registry) 那儿下载最新的镜像了。
比如下面的 docker compose 文件,因为使用了 latest 标签,在每次启动时 m-ui 和 m-proxy 就不会自动更新到最新版本。
version: "3.4"
services:
m-ui:
image: "surfirst.some-registry.io/m-ui:latest"
container_name: m-ui
ports:
- "2081:80"
m-proxy:
image: "surfirst.some-registry.io/m-proxy:latest"
container_name: m-proxy
depends_on:
- m-ui
ports:
- "80:80"
这就导致每次我们启动 docker 脚本或者 docker compose 都不会自动更新我们的服务。
那么如何解决这个问题呢?
我们可以在运行 docker run 和 docker compose up 之前使用 docker pull 命令获取最新的镜像。docker pull 命