Nur*_*ony 5 docker docker-compose docker-machine
我发现每次我在新机器上创建一个容器时,它都会从docker hub提取图像。我已经在网上搜索过,但没有找到格式正确的结果。我已经从主机上的集线器中提取了图像。现在我的问题是如何使docker机器在将任何图像拉入virtualbox之前检查主机图像位置?我希望计算机共享并保存主机默认位置中的图像,这样我就可以在多台计算机之间共享图像,而不必从每台计算机的注册表中提取图像
在新机器,即新虚拟机中,docker确实会将镜像从docker hub拉取到本地虚拟机docker镜像存储路径:
/var/lib/docker/images
Run Code Online (Sandbox Code Playgroud)
每台新机器都有自己的图像缓存。
如果您想在计算机之间共享图像,您需要一个充当您的私人注册表,并拥有自己的证书来启用 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
Run Code Online (Sandbox Code Playgroud)
然后你的另一台机器可以从该注册表中拉取,这要快得多,并且只会从 docker hub 中拉取一次,第一次看到它自己的注册表中没有该映像时。
例如:
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
Run Code Online (Sandbox Code Playgroud)
有关更简单的解决方法,请参阅:
归档时间: |
|
查看次数: |
1671 次 |
最近记录: |