我有一个名为"ubuntu-dev-update-15"的5GB docker镜像,我是在我当地的Ubuntu 14 dev机器上开发的.在那张图片中,我拥有完成开发工作所需的一切.现在我需要能够将此图像发送到不同的Linux主机.这样做的程序是什么?
Tej*_*sad 17
如果您的不同Linux主机位于同一网络上,则可以使用FTP或本地HTTP服务器传输已保存的映像,或者共享以在本地传输文件.使用保存:
docker save [OPTIONS] IMAGE [IMAGE...]
Run Code Online (Sandbox Code Playgroud)
示例: sudo docker save -o ubuntu.tar ubuntu:precise ubuntu:unicorn
其中,-o保存到一个文件,而不是标准输出.将此tar文件传输到其他linux主机.使用以下命令在新主机中载入此tar文件:docker load [OPTIONS]
例: sudo docker load --input fedora.tar
其中--input从tar存档文件中读取,而不是STDIN.
小智 5
Docker 集线器是移动文件的一种选择。但是从生产的角度来看,最好在要发送图像的机器上运行一个注册表(存储图像的地方)。
例如,您想将图像从 system1 发送到 system2。让您的图像名称为 my_image。
现在通过运行在 system1 中打开一个注册表
docker run -p <system1-ip>:5000:5000 -d registry
Run Code Online (Sandbox Code Playgroud)
将您的图像推送到该注册表中:
您需要使用标签选项将图像重命名为 :5000/my_image
docker tag my_image <system1-ip>:5000/my_image
Run Code Online (Sandbox Code Playgroud)
现在使用 push 命令推送到注册表中
docker push <system1-ip>:5000/my_image
Run Code Online (Sandbox Code Playgroud)
现在转到 system2 并从注册表中拉取您的映像。
docker pull <system1-ip>:5000/my_image
Run Code Online (Sandbox Code Playgroud)
这是最安全的图像传输方式。创建私有存储库的参考链接
在 docker hub 上获得一个帐户。
https://hub.docker.com/account/signup/
Run Code Online (Sandbox Code Playgroud)
注册后(仅执行一次),您可以从具有要推送的图像的主机登录:
docker login
(login with your username, password, and email address)
Run Code Online (Sandbox Code Playgroud)
然后你把你的图像推到那里。您可能需要先标记它。假设您创建了一个名为 mynewacc 的新帐户,首先,您标记您的图像:
docker tag ubuntu-dev-update-15 mynewacc/ubuntu-dev-update-15
Run Code Online (Sandbox Code Playgroud)
然后将图像推送到您的 docker hub:
docker push mynewacc/ubuntu-dev-update-15
Run Code Online (Sandbox Code Playgroud)
现在任何使用 docker 的人都可以拉取你的镜像:
docker pull mynewacc/ubuntu-dev-update-15
Run Code Online (Sandbox Code Playgroud)
然后运行图像:
docker run -it mynewacc/ubuntu-dev-update-15 /bin/bash
Run Code Online (Sandbox Code Playgroud)
您可以跳过拉取步骤,如果图像不存在,无论如何都会拉取它。拉力保证您得到最新鲜的。
| 归档时间: |
|
| 查看次数: |
4387 次 |
| 最近记录: |