在主机和儿童码头之间共享图像

时间:2014-03-13 18:40:38

标签: docker

我读了这篇文章http://blog.docker.io/2013/09/docker-can-now-run-within-docker/,我希望在我的主持人和#34;之间分享图片。码头工人"孩子"泊坞窗。但是当我跑步时

sudo docker run -v /var/lib/docker:/var/lib/docker -privileged -t -i jpetazzo/dind

我无法连接到"孩子"来自 dind 容器的docker。

     root@5a0cbdc2b7df:/# docker version
     Client version: 0.8.1
     Go version (client): go1.2
     Git commit (client): a1598d1
     2014/03/13 18:37:49 Can't connect to docker daemon. Is 'docker -d' running on this host?

如何在主机和儿童码头之间共享本地图像?

1 个答案:

答案 0 :(得分:7)

你不应该这样做! Docker假定它具有/var/lib/docker的独占访问权限,如果您(或另一个Docker实例)干扰此目录,则可能会产生意外结果。

有多种解决方案,具体取决于您希望实现的目标。

  • 如果您希望能够从容器中运行Docker命令,但不需要单独的守护程序,那么您可以与此容器共享Docker控件套接字,例如:

    docker run -v /var/run/docker.sock:/var/run/docker.sock \
               -v /usr/bin/docker:/usr/bin/docker \
               -t -i ubuntu bash
    
  • 如果您真的想要运行不同的Docker守护程序(例如,因为您正在攻击Docker和/或想要运行不同的版本),但想要访问相同的图像,也许您可​​以运行私有容器中的注册表,并使用该注册表轻松地在Docker-in-the-Host和Docker-in-the-Container之间共享图像。

不要犹豫提供有关您的用例的更多详细信息,以便我们告诉您最合适的解决方案!