如何让 docker 启动容器的时候每次都使用最新的镜像?

24 篇文章 1 订阅

在使用 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 命令不会下载完整的镜像,它只会下载 docker 镜像中有变化的那一层。

下面的命令使用 docker pull 获取最新的 m-ui:

docker pull surfirst.some-registry.io/m-ui:latest
latest: Pulling from enrollment-proxy
a603fa5e3b41: Already exists
c39e1cda007e: Already exists
90cfefba34d7: Already exists
a38226fb7aba: Already exists
62583498bae6: Already exists
9802a2cfdb8d: Already exists
56e3654a01ca: Pull complete
c26477c8f62b: Pull complete
Digest: sha256:f4d40bbdc39ad7e82fa0465501965e2d761b00b1f23d0568f95b86e7f54bae37
Status: Downloaded newer image for surfirst.some-registry.io/m-ui:latest
surfirst.azurecr.io/m-ui:latest

结论

为了每次都使用最新的镜像运行我们的微服务,我们可以使用 docker pull 先拉取镜像。这样就不用为 docker run 或者 docker compose 只使用本地缓存的 docker 镜像而烦恼了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值