全球主机交流论坛

标题: 运行容器时拉取的是latest最新版,下次拉取会自动更新吗? [打印本页]

作者: 腾讯云6折购    时间: 2023-4-26 10:15
标题: 运行容器时拉取的是latest最新版,下次拉取会自动更新吗?
比如我现在用docker run -d --name nginx nginx运行了镜像,这时候会自动拉取最新的镜像,对吧

然后我两年后在运行docker run -d --name nginx nginx 这时候会拉取当前最新的镜像吗?还是用两年前拉取的镜像呢?
作者: rtz    时间: 2023-4-26 10:16
会更新,而且如果新版有bug,你还会自动获得bug
作者: 空谷幽兰    时间: 2023-4-26 10:17
docker run 后面加上这个参数 --pull always
作者: 美图秀秀    时间: 2023-4-26 10:18
应该还是原来的吧,你本地没有镜像才会自动拉取,有镜像直接运行了
作者: joshua    时间: 2023-4-26 10:18
是最新版的,相当于每次创建了一个新的容器
作者: HOH    时间: 2023-4-26 10:19
自己看dockerfile怎么写的
作者: 巴呆棒棒    时间: 2023-4-26 10:19
默认拉取 仓库最新镜像 这点不用担心
作者: 巴勒蒙干    时间: 2023-4-26 10:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: 省港澳白嫖王    时间: 2023-4-26 10:27
本帖最后由 省港澳白嫖王 于 2023-4-26 10:31 编辑

imagepullpolicy设置了always才会
不然都是本地不存在才拉
比如你可以在docker run 时设置 --pull always 就可以总是拉去
没设置默认就是missing只有当本地不存在该镜像时才会拉取远程镜像。
作者: muyijiang    时间: 2023-4-26 10:38
更新的话,需要删除镜像,然后重新拉取
作者: 腾讯云6折购    时间: 2023-4-26 11:59
省港澳白嫖王 发表于 2023-4-26 10:27
imagepullpolicy设置了always才会
不然都是本地不存在才拉
比如你可以在docker run 时设置 --pull always  ...

阿里嘎多
作者: 腾讯云6折购    时间: 2023-4-26 12:25
省港澳白嫖王 发表于 2023-4-26 10:27
imagepullpolicy设置了always才会
不然都是本地不存在才拉
比如你可以在docker run 时设置 --pull always  ...

--pull always 在docker-compose里面该怎么写?大佬
作者: 腾讯云6折购    时间: 2023-4-26 12:29
空谷幽兰 发表于 2023-4-26 10:17
docker run 后面加上这个参数 --pull always

--pull always 在docker-compose里面该怎么写?大佬
作者: 省港澳白嫖王    时间: 2023-4-26 12:33
腾讯云6折购 发表于 2023-4-26 12:25
--pull always 在docker-compose里面该怎么写?大佬

pull: always

作者: 腾讯云6折购    时间: 2023-4-26 13:19
省港澳白嫖王 发表于 2023-4-26 12:33
pull: always

好像是https://docs.docker.com/compose/compose-file/05-services/#pull_policy
作者: ulggf847    时间: 2023-4-26 13:30
latest 这个tag是一个特殊的,每次都会拉最新的,其他的tag不会拉最新的。
如果你的容器已经存在,只是重启容器当然不管是什么tag都不会拉最新的。如果是重新创建的话,并且tag是latest就会拉最新的!!!
作者: 腾讯云6折购    时间: 2023-4-26 13:35
ulggf847 发表于 2023-4-26 13:30
latest 这个tag是一个特殊的,每次都会拉最新的,其他的tag不会拉最新的。
如果你的容器已经存在,只是重启 ...

也就是写latest会自动拉取 不写不会自动拉取是吧

docker run -d --name nginx nginx 不会拉取
docker run -d --name nginx nginx:latest 会每次都拉取

是这样吗
作者: ulggf847    时间: 2023-4-26 16:56
腾讯云6折购 发表于 2023-4-26 13:35
也就是写latest会自动拉取 不写不会自动拉取是吧

docker run -d --name nginx nginx 不会拉取

如果你不写,默认就是带了latest。所以不写就是 latest。
作者: ulggf847    时间: 2023-4-26 16:57
腾讯云6折购 发表于 2023-4-26 13:35
也就是写latest会自动拉取 不写不会自动拉取是吧

docker run -d --name nginx nginx 不会拉取

所以:
docker run -d --name nginx nginx 会每次都拉取(等同于nginx:latest )
docker run -d --name nginx nginx:latest 会每次都拉取
作者: aru    时间: 2023-4-26 16:58
ulggf847 发表于 2023-4-26 16:57
所以:
docker run -d --name nginx nginx 会每次都拉取(等同于nginx:latest )
docker run -d --name n ...

默认并不会更新
作者: tem    时间: 2023-4-26 17:03
watchtower 了解下,docker原理了解下
作者: ulggf847    时间: 2023-4-26 17:05
aru 发表于 2023-4-26 16:58
默认并不会更新

from chagpt:

在 Docker 中,镜像的标签是用来标识特定版本或标记的。标签为"latest"的镜像通常被认为是最新版本的镜像,但它并不会自动在每次创建容器时尝试拉取最新镜像。

当使用 Docker 创建容器时,如果指定的镜像标签是"latest",Docker 会在本地查找已经下载的镜像并使用该镜像创建容器,而不会尝试去拉取最新的镜像。这意味着如果已经下载了一个标签为"latest"的镜像,并且在创建容器时指定使用这个镜像,那么不会再次尝试拉取最新镜像。

如果想确保每次创建容器时都使用最新的镜像,可以考虑使用特定的版本标签,而不是"latest"标签。例如,可以使用如下的镜像标签:<镜像名称>:<版本号>,例如myimage:1.0,这样每次创建容器时都会使用指定版本的镜像,并且如果有新版本的镜像可用时,需要手动更新镜像标签并重新拉取最新镜像。这样可以确保在创建容器时使用最新的镜像。


好像我的理解有问题,如果按照chatgpt的回答,确实不会拉取最新镜像。
作者: 巴勒蒙干    时间: 2023-4-27 20:11
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 全球主机交流论坛 (https://hostloc.gdisk.cf/) Powered by Discuz! X3.4