我有一个名为" ubuntu-dev-update-15"的5GB docker镜像,我是在我当地的Ubuntu 14 dev机器上开发的。 在那张图片中,我拥有完成开发工作所需的一切。 现在我需要能够将此图像发送到不同的Linux主机。 这样做的程序是什么?
答案 0 :(得分:16)
如果您的不同Linux主机位于同一网络上,您可以使用FTP或本地HTTP服务器传输保存的图像,或共享以在本地传输文件。 使用保存:
docker save [OPTIONS] IMAGE [IMAGE...]
示例:sudo docker save -o ubuntu.tar ubuntu:precise ubuntu:unicorn
其中-o
保存到文件,而不是STDOUT。
将此tar文件传输到其他linux主机。使用以下命令在新主机中加载此tar文件:docker load [OPTIONS]
示例:sudo docker load --input fedora.tar
其中--input
从tar存档文件中读取,而不是STDIN。
答案 1 :(得分:3)
Docker hub是移动文件的一个选项。 但从生产的角度来看,最好在要发送图像的机器中运行注册表(存储图像的位置)。
例如,您希望将图像从system1发送到system2。 让你的图像名称为my_image。
现在通过运行
在system1中打开一个注册表docker run -p <system1-ip>:5000:5000 -d registry
将您的图片推送到该注册表中:
您需要使用标签选项
重命名图像:5000 / my_imagedocker tag my_image <system1-ip>:5000/my_image
现在使用push命令
进入注册表docker push <system1-ip>:5000/my_image
现在转到system2并从注册表中提取图像。
docker pull <system1-ip>:5000/my_image
这是传输图像最安全的方式。 参考链接creating a private repository
答案 2 :(得分:0)
在码头工具中心获取帐户。
https://hub.docker.com/account/signup/
注册后(只执行一次),您从包含要推送图像的主机登录:
docker login
(login with your username, password, and email address)
然后你把图像推到那里。你可能需要先标记它。假设您创建了一个名为mynewacc的新帐户,首先,您要标记您的图片:
docker tag ubuntu-dev-update-15 mynewacc/ubuntu-dev-update-15
然后将图像推送到docker hub:
docker push mynewacc/ubuntu-dev-update-15
现在任何拥有泊坞窗的人都可以将您的图片拉下来:
docker pull mynewacc/ubuntu-dev-update-15
然后运行图像:
docker run -it mynewacc/ubuntu-dev-update-15 /bin/bash
你可以跳过拉动步骤,如果图像不存在,它将被拉动。拉力保证你得到最新鲜的。