gpt4 book ai didi

docker - 如何在不使用 Docker-Hub 的情况下共享我的 Docker-Image?

转载 作者:IT老高 更新时间:2023-10-28 12:32:45 24 4
gpt4 key购买 nike

我想知道 Docker 的图像究竟存储在我的本地主机中的什么位置。我可以在不使用 Docker-HubDockerfile 而是使用“真正的”Docker-Image 的情况下共享我的 Docker-Image 吗?当我将 Docker-Image 推送到 Docker-Hub 时到底发生了什么?

最佳答案

Docker 镜像存储为文件系统层。 Dockerfile 中的每个命令都会创建一个层。您还可以在进行一些更改后从命令行使用 docker commit 创建图层(可能通过 docker run)。

这些层默认存储在 /var/lib/docker 下。虽然您可以(理论上)从那里挑选文件并将其安装在不同的 docker 服务器中,但使用 Docker 使用的内部表示可能是个坏主意。

当你推送你的镜像时,这些层会被发送到注册表(docker hub 注册表,默认情况下……除非你用另一个注册表前缀标记你的镜像)并存储在那里。拉取的时候,layer id用来检查本地是否已经有layer或者需要下载。您可以使用 docker history 查看使用了哪些层(其他图像)(以及在某种程度上,哪个命令创建了该层)。

关于在不推送到 docker hub 注册表的情况下共享图像的选项,您的最佳选择是:

  • docker save 一个图像或 docker export 一个容器。这会将 tar 文件输出到标准输出,因此您会喜欢执行 docker save 'dockerizeit/agent' > dk.agent.latest.tar 之类的操作。然后你可以在不同的主机上使用 docker loaddocker import

  • 托管您自己的私有(private)注册表。 - 过时,见评论 docker registry image .我们已经建立了 s3 backed registry您可以根据需要启动和停止(所有状态都保存在您选择的 s3 存储桶中),这很容易设置。这也是一种观察推送到注册表时会发生什么的有趣方式

  • 使用另一个注册表,例如 quay.io (我没有亲自尝试过),尽管您对 docker hub 的任何顾虑可能也适用于此。

关于docker - 如何在不使用 Docker-Hub 的情况下共享我的 Docker-Image?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24482822/

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