gpt4 book ai didi

docker - 两个相同的 Docker 镜像怎么可能安装不同的软件包?

转载 作者:行者123 更新时间:2023-12-02 05:03:53 24 4
gpt4 key购买 nike

初始帖子

我在两个不同的 CoreOS 服务器上运行相同的 docker 镜像。 (它们位于 Kubernetes 集群中,但我认为这与当前问题无关。)

它们都在运行图像哈希 01e95e0a93af 。他们都应该有 curl 。一个则不然。这似乎……不可能。

良好的服务器

core@ip-10-0-0-61 ~ $ docker pull gcr.io/surveyadmin-001/wolfgang:commit_e78e07eb6ce5727af6ffeb4ca3e903907e3ab83a
Digest: sha256:5d8bf456ad2d08ce3cd15f05b62fddc07fda3955267ee0d3ef73ee1a96b98e68
[cut]
Status: Image is up to date for gcr.io/surveyadmin-001/wolfgang:commit_e78e07eb6ce5727af6ffeb4ca3e903907e3ab83a

core@ip-10-0-0-61 ~ $ docker run -it --rm gcr.io/surveyadmin-001/wolfgang:commit_e78e07eb6ce5727af6ffeb4ca3e903907e3ab83a /bin/bash
root@d29cb8783830:/app/bundle# curl
curl: try 'curl --help' or 'curl --manual' for more information
root@d29cb8783830:/app/bundle#

服务器故障

core@ip-10-0-0-212 ~ $ docker pull gcr.io/surveyadmin-001/wolfgang:commit_e78e07eb6ce5727af6ffeb4ca3e903907e3ab83a
[cut]
Digest: sha256:5d8bf456ad2d08ce3cd15f05b62fddc07fda3955267ee0d3ef73ee1a96b98e68
Status: Image is up to date for gcr.io/surveyadmin-001/wolfgang:commit_e78e07eb6ce5727af6ffeb4ca3e903907e3ab83a

core@ip-10-0-0-212 ~ $ docker run -it --rm gcr.io/surveyadmin-001/wolfgang:commit_e78e07eb6ce5727af6ffeb4ca3e903907e3ab83a /bin/bash
root@fe6a536393f8:/app/bundle# curl
bash: curl: command not found
root@fe6a536393f8:/app/bundle#

Full logs available on this gist 。我将坏服务器从我们的生产集群中取出,但如果有人想让我做任何其他研究,它仍然运行。

添加于 2015-12-04

我在两台服务器上运行 docker tag gcr.io/surveyadmin-001/wolfgang:commit_e78e07eb6ce5727af6ffeb4ca3e903907e3ab83a weird-image 以使所有内容更具可读性。

哪个 curl

Can you do a which curl in the first component to check where it finds its curl? And see if that file exists in the second component. – VonC

在坏服务器上似乎根本不存在。

良好的服务器

core@ip-10-0-0-61 ~ $ docker run -it --rm weird-image /bin/bash 
root@529b8f20a610:/app/bundle# which curl
/usr/bin/curl

服务器故障

core@ip-10-0-0-212 ~ $ docker run -it --rm weird-image /bin/bash 
root@ff98c850dbaa:/app/bundle# ls /usr/bin/curl
ls: cannot access /usr/bin/curl: No such file or directory
root@ff98c850dbaa:/app/bundle#

别名docker

Any chance you have set up an alias on the bad box? Run alias docker to check – morloch

不。

良好的服务器

core@ip-10-0-0-61 ~ $ alias docker
-bash: alias: docker: not found

服务器故障

core@ip-10-0-0-212 ~ $ alias docker
-bash: alias: docker: not found

时间

更奇怪的是:在坏服务器上运行容器需要更长的时间。

良好的服务器

core@ip-10-0-0-61 ~ $ time docker run weird-image echo "Done"
Done

real 0m0.422s
user 0m0.015s
sys 0m0.015s

服务器故障

core@ip-10-0-0-212 ~ $ time docker run weird-image echo "Done"
Done

real 0m4.602s
user 0m0.010s
sys 0m0.010s

最佳答案

我见过很多磁盘上的 Docker 镜像出现随机损坏的情况(导致奇怪的不一致,就像您在此处描述的那样),删除并重新拉取镜像“修复”了问题。

要测试这一点,您需要确保不仅 docker rmi gcr.io/surveyadmin-001/wolfgang:commit_e78e07eb6ce5727af6ffeb4ca3e903907e3ab83a (这将至少输出 Untagged: gcr.io/surveyadmin-001/wolfgang:commit_e78e07eb6ce5727af6ffeb4ca3e903907e3ab83a),但还要删除各个图层(以及它们可能具有的任何其他标签),以便它们被迫重新拉取。

关于docker - 两个相同的 Docker 镜像怎么可能安装不同的软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34079088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com