如何在一个文件中打包docker镜像

时间:2015-02-05 01:27:57

标签: docker

我有一个名为" ubuntu-dev-update-15"的5GB docker镜像,我是在我当地的Ubuntu 14 dev机器上开发的。 在那张图片中,我拥有完成开发工作所需的一切。 现在我需要能够将此图像发送到不同的Linux主机。 这样做的程序是什么?

3 个答案:

答案 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_image
docker 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

你可以跳过拉动步骤,如果图像不存在,它将被拉动。拉力保证你得到最新鲜的。