如何让Docker机器从主机获取图像,然后为其自身提供任何图像?

我发现每次在新机器上创build一个容器时,都会从Docker集线器中拉出图像。 我search了网页,但没有find合适的结果。 我已经从主机上的集线器上拉出图像。 现在我的问题是如何使泊坞窗机在将任何图像拖入virtualbox之前检查主机映像位置? 我希望机器能够共享和保存主机默认位置的图像,这样我就可以在多台机器之间共享图像,而无需从每台机器的registry中拉出图像

在一台机器上,意思是一个新的虚拟机,docker的确将图像从Docker集线器拖到本地VM泊坞窗图像存储path:

/var/lib/docker/images 

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

如果您想在机器之间共享图像,则需要一个用作您的私人registry,并使用自己的证书启用https访问。
在这里看一个例子 ,使用gen_ssl_key_and_crt.sh来生成密钥/证书:

 ./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 

那么你的另外一台机器可以从那个registry中获取,这个速度要快得多,而且它只会从docker集线器中取出一次,它第一次看到它没有在自己的registry中显示图像。

例如 :

 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 

有关更简单的解决方法,请参阅:

  • “ 如何将默认dockerregistry从docker.io更改为我的私人registry ”
  • “ 运行本地registry镜像 ”