如何将docker安装移动到另一台机器?

时间:2015-05-11 22:55:13

标签: docker coreos

我知道/var/lib/docker但是在另一台机器上安装此目录足以恢复原始机器上的docker功能吗?我在不同的CoreOS实例之间尝试过此操作,但是当发出docker image时,即使它们位于/var/lib/docker目录中,也不会显示图像。我是否遗漏了一些应该转移的其他数据?

最终目标是拥有一个可以从任何机器构建的图像的便携式“回购”。

相关Where are Docker images stored on the host machine?

4 个答案:

答案 0 :(得分:1)

docker export,从机器A到机器B的scp,以及docker导入应该适合你。

答案 1 :(得分:0)

我认为为了让你像这样转移码头图像,他们首先要压缩为tar。

答案 2 :(得分:0)

对于上述查询,如果我没有错,你想将图像(所有图像)传输到远程机器。

这种方法的一种简单方法是在第二台机器(比如机器B)上创建一个注册表,然后从主机(机器A)推送所有图像。

但是我怀疑你所指的本地挂载点存在一些权限问题。我建议你先在本地挂载点上用chmod 777命令检查。然后如果它有效,你可以提供访问权限限制权限。

同样,我还没有尝试在其他计算机/var/lib/docker上安装,但如果它必须工作,你应该给予许可,它应该由docker group拥有。

如果您遇到许可问题,请告诉我们。 祝你好运

答案 3 :(得分:0)

因此,在我的解决方案中,我同时使用了一个私有的docker注册表和一个共享的' /var/lib/docker我在我的(短暂的)实例/构建机器之间安装。我打算使用注册表将图像分发给不会构建的机器。共享docker dir有助于缩短构建时间。我对每个dockerfile都有以下步骤。

docker pull          $REGISTRY_HOST/$name
docker build                    -t  $name $itsdir
echo loading into registry \
                 $REGISTRY_HOST/$name
#assuming repos in 'root' ( library/ )
docker rmi           $REGISTRY_HOST/$name
docker tag    $name  $REGISTRY_HOST/$name
docker push          $REGISTRY_HOST/$name
docker rmi           $REGISTRY_HOST/$name

我认为这很有效。