Можем ли мы запустить docker внутри контейнера Docker, который работает в виртуальной коробке Ubuntu 18.04? - PullRequest
0 голосов
/ 06 мая 2019

Я хочу запустить докер внутри другого контейнера докера. Мой главный контейнер работает в виртуальной коробке ОС Ubuntu 18.04, которая есть на моей Windows 10. При попытке запустить его он показывает мне:

Невозможно подключиться к демону Docker в unix: ///var/run/docker.sock. Работает ли демон Docker?

Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Я запускаю электрический поток в док-контейнере в моем виртуальном ящике Ubuntu с помощью команды docker: docker run --name efserver --hostname = efserver -d -p 8080: 8080 -p 9990: 9990-p 7800: 7800 -p 7070: 80 -p 443: 443 -p 8443: 8443 -p 8200: 8200 -i -t ecdocker / eflow-ce.Внутри этого док-контейнера я хочу установить и запустить docker, чтобы мой конвейер CI / CD в электрическом потоке мог получить доступ и использовать команды докера.

Из приведенного выше описания ecdocker/eflow-ce - ваш CI/ CD решение контейнера, и вы просто хотите использовать docker command в этом контейнере, тогда вам не нужно решение dind.Вы можете просто получить доступ к серверу докера хоста контейнера.

Примерно так:

docker run --privileged --name efserver --hostname=efserver -d -p 8080:8080 -p 9990:9990 -p 7800:7800 -p 7070:80 -p 443:443 -p 8443:8443 -p 8200:8200 -v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -i -t ecdocker/eflow-ce

По сравнению со старой командой:

  • Добавить --privileged
  • Добавить -v $(which docker):/usr/bin/docker, затем вы можете использовать docker client в контейнере.
  • Добавить -v /var/run/docker.sock:/var/run/docker.sock, затем вы можете получить доступ к демону Docker хоста с помощью клиента в контейнере.
0 голосов
/ 06 мая 2019

Да, вы можете сделать это. Проверьте на dind (docker in docker) на странице Docker, как этого добиться: https://hub.docker.com/_/docker

Ваша ошибка указывает на то, что либо dockerd в контейнере верхнего уровня не запущен, либо вы не подключили docker.sock в зависимом контейнере для связи с dockerd, работающим в вашем контейнере верхнего уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...