Docker в Docker(DND) не запускается

У меня есть простой контейнер Ubuntu 16.10, который имеет docker.io установлены.

Процесс Docker завершается после запуска, и журнал имеет эту информацию. Есть предложения по устранению неполадок?

$ 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"

3 ответа

Решение

Почему вы хотите запустить Docker внутри Docker-контейнера?

Docker-in-Docker разработан, чтобы помочь развитию докеров. И это нужно --privileged флаг для запуска Docker-контейнера.(Пожалуйста, прочитайте блог jpetazzo здесь.)

Если вы действительно хотите выполнить docker в контейнере Docker, у вас также есть другие варианты.

  1. Привязать крепление docker.sock. Некоторые люди называют это DooD(Docker-outside-of-Docker)

    Докер запускает -v /var/run/docker.sock:/var/run/docker.sock ...

  2. Установите докер (клиент) и укажите DOCKER_HOST чтобы получить доступ к демону удаленного докера. Будьте осторожны с защитой сокетов с помощью сертификатов.

Ответ был прост.

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

(Это также было упомянуто частично в ответе @SunghoMoon. Так что Кредиты ему).

Вы запускаете docker как sudo, если не запускаете как sudo или

Еще добавить группу пользователей в Docker

Докерская группа. Для этого запустите следующую команду:

sudo usermod -aG docker $ USER

Другие вопросы по тегам