gpt4 book ai didi

docker - 在为自己拉取任何图像之前,如何让 docker 机器从主机获取图像?

转载 作者:行者123 更新时间:2023-12-04 20:35:17 25 4
gpt4 key购买 nike

我发现每次我在新机器上创建一个容器时,它都会从 docker hub 拉取图像。我在网上搜索过,但没有找到格式正确的结果。我已经从主机上的集线器中提取了图像。现在我的问题是如何让docker机器在将任何图像拉入virtualbox之前检查主机图像位置?我希望机器从主机的默认位置共享和保存图像,以便我可以在多台机器之间共享图像,而无需从每台机器的注册表中提取图像

最佳答案

在一台新机器上,意味着一个新的虚拟机,docker 确实会从 docker hub 拉取镜像到本地虚拟机的 docker 镜像存储路径:

/var/lib/docker/images

每台新机器都有自己的图像缓存。

如果您想在机器之间共享图像,您需要一个充当您的私有(private)注册表,具有自己的证书以启用 https 访问。
example here , 使用 gen_ssl_key_and_crt.sh 对于 key /证书生成:
./gen_ssl_key_and_crt.sh
if [[ "$(docker inspect -f {{.State.Running}} registry 2> /dev/null)" == "" ]]; then
docker run -d -p 5000:5000 --restart=always --name registry \
-v $(pwd)/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/key \
registry:2
fi

然后您的另一台机器可以从该注册表中提取,这要快得多,并且只会从 docker hub 提取一次,这是它第一次看到它自己的注册表中没有图像。

For instance :
if [[ "$(docker images -q kv:5000/b2d/git:2.8.1 2> /dev/null)" == "" ]]; then
docker pull kv:5000/b2d/git:2.8.1
fi

有关更简单的解决方法,请参阅:
  • "How to change the default docker registry from docker.io to my private registry "
  • "Run a local registry mirror "
  • 关于docker - 在为自己拉取任何图像之前,如何让 docker 机器从主机获取图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37106522/

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