问题标签 [docker-layer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 为什么 CMD 命令会生成一个新层?
全部。
我有一个关于 Docker 层图像的问题。
我认为 RUN、ADD、COPY、CMD 命令会生成一个新层。但是,我想知道为什么 CMD 命令会生成一个新图层。
例如,我理解“ADD hoge.txt /var/tmp”需要一个层,因为该命令会生成一个新文件“hoge.txt”。但是,“/bin/bash”命令不会生成任何内容。
你能告诉我原因吗?
另外,centos7 官方镜像中的命令“CMD [”/bin/bash“]”似乎生成了一个包含一些文件的层,如下所述。
docker - 为什么子容器的层中没有列出父容器映像 SHA?
考虑一个容器镜像,我们称之为BaseContainerImage
. 我基于 docker hub 上的容器映像(如果重要,则为 .Net Core 3.1 运行时)构建此容器映像。“基于”是指FROM
docker hub 镜像的引用。
当我构建它时,它的 SHA 为:sha256:9ec7b7481feee3eb141f7321be1df353b1ab8b6bdf0d871717b6f7e90e6ed0f6
。(通过检查config
.digest
容器图像的清单找到。)
然后我去制作一个新的容器镜像,我们调用它ApplicationContainerImage
。它基于BaseContainerImage
, 使用引用上述 SHA 的标记。构建后,我查看容器映像的清单。
我希望该layers
部分包含“父”容器图像的 SHA。 但事实并非如此。
当我比较两者的层时,所有层BaseContainerImage
都在ApplicationContainerImage
. 所以我知道FROM
工作。但我只是不明白为什么 . 的 SHABaseContainerImage
被排除在ApplicationContainerImage
.
为什么 SHA 的BaseContainerImage
层没有列出ApplicationContainerImage
?
后来的注释:
当我去BaseContainerImage
从远程存储库下载时,它告诉我(作为PULL
命令输出的一部分,摘要Digest: sha256:a1dd2dfdfc51e7abba1d2db319ba457e7b72f7258f5cefca0ee6ec6845f564b6
显然与上述摘要不匹配。但是当我运行docker manifest inspect
完全相同的图像时,config
.digest
是sha256:9ec7b7481feee3eb141f7321be1df353b1ab8b6bdf0d871717b6f7e90e6ed0f6
,与我之前得到的相符。
为什么有两个不同的 SHA 值?一个只是为了拉动作吗?
docker - 如何在不使用缓存层但使用前一阶段的缓存的情况下构建多阶段 Docker 构建的每个部分
我有一个 4 阶段的 Dockerfile,如下所示,但是当我不想使用缓存时,我无法找到优化构建的最佳方法(以确保使用最新的图像和包) …</p>
目前我使用以下命令单独
构建每个php
, nginx
&容器......</p>ssh
这样做的问题是,因为我正在使用--no-cache
标志,所以每个后续阶段都会重新构建它们所依赖的早期阶段。
有时我可能只想构建容器镜像的一个子集。
我有哪些优化选项?我可以想到以下……</p>
根据 Dockerfile 中的顺序,找出我们想要构建的最后一个镜像,并首先使用
--no-cache
标志构建最后一个镜像,然后在没有标志的情况下构建所有其余镜像--no-cache
。在我需要确保不使用缓存的每个步骤中使用随机值构建 arg,就像这样......</p>
…然后为每个构建命令传递相同的时间戳。
我在其中一个方面走在正确的轨道上,还是有其他更好的选择?
image - 如何检查 Docker 映像中的单个层?
我需要获取有关单个图层的更多信息——可能通过图层 ID——例如创建和上次修改日期。
docker image inspect
Docker 映像中的单层是否有类似的东西?
docker - Docker 无法拉取镜像没有这样的文件或目录
我正在使用最简单的 docker 文件从另一个图像创建一个 docker 图像:
图像构建和标记成功。但是,当我将其推送到 Azure 容器注册表并拉取映像时,我收到以下错误:
来自同一注册表的原始图像提取并成功运行。
知道我做错了什么吗?
linux - Docker:“符号链接的级别太多”
我一直在尝试通过我的 umbrel 节点安装 btcpay-server。我 ssh-ed 进入服务器并为 btcpay-server 拉取 docker 映像。
这样做时,docker 无法安装 postgres 层并给了我这个错误:
完整日志:
我在运行在树莓派 4 上的 debian 上运行所有这些。
docker版本:Docker 版本 20.10.12,构建 e91ed57
码头工人撰写文件: