Docker中的Docker(DND)没有启动

我有一个简单的Ubuntu 16.10容器有docker.io安装。

docker进程在启动后终止并且logging有这个信息。 任何疑难排解build议

 $ docker run -it --name dcos-ubuntu-python5 python-docker /bin/bash root@5ff6bb6b6dc7:/# docker run hello-world docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?. See 'docker run --help'. root@5ff6bb6b6dc7:/# service docker start * Starting Docker: docker [ OK ] root@5ff6bb6b6dc7:/# service docker status * Docker is not running root@5ff6bb6b6dc7:/# tail -f /var/log/docker.log time="2017-12-21T17:09:45.464736873Z" level=info msg="libcontainerd: new containerd process, pid: 50" time="2017-12-21T17:09:46.472578239Z" level=fatal msg="Error starting daemon: error initializing graphdriver: operation not permitted" 

你为什么要在Docker容器中运行docker?

Docker-in-Docker是为了帮助docker开发而开发的。 它需要 – --privileged标志来运行docker集装箱。(请在这里阅读jpetazzo的博客。)

如果你真的想在Docker容器中执行docker,你也有其他的select。

  1. 绑定装载docker.sock。 有人把这个DooD(Docker-outside-of-Docker)

    docker运行-v /var/run/docker.sock:/var/run/docker.sock …

  2. 安装DOCKER_HOST (客户端)并指定DOCKER_HOST访问远程DOCKER_HOST守护进程。 小心使用证书的套接字保护 。

你运行docker作为sudo,如果没有运行sudo或

否则,将用户组添加到泊坞窗

docker组。 为此运行以下命令:

sudo usermod -aG docker $ USER

答案很简单。

 docker run -it --privileged --name dcos-ubuntu-python5 python-docker /bin/bash 

(这个也在@孙惠敏的回答中也有部分提及,所以给他的是Credits)。