Как запустить Docker: начать с оболочки - PullRequest
0 голосов
/ 11 января 2019

Я хочу запустить docker:dind и получить оболочку.
Если я запускаю docker run --privileged docker:dind sh, он просто завершается.
Обходной путь должен выполнить: docker run -d --privileged docker:dind
он запускается в фоновом режиме, а затем я могу запустить docker exec -it <container> sh и получить оболочку.

Но я хочу, чтобы это началось с оболочки.
Я создал Dockerfile:

FROM docker:dind
ENTRYPOINT sh  

Я построил это:
docker build -t dind2 -f Dockerfile .

Когда я запускаю docker run --rm -it --privileged dind2, я получаю оболочку, но когда я пытался запустить простой контейнер docker run busybox echo hi, он завершается с:

docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.  

Любая идея, как заставить docker:dind начать с оболочки без обходного пути - запустить ее в фоновом режиме и затем использовать exec для получения оболочки.

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Точно так же, как сказал Андреас Ведербранд. Вы можете просто

docker run -it docker:dind sh

и если вы хотите использовать Dockerfile. Просто напишите так.

FROM docker:dind
CMD ["sh"]

Не должно перезаписываться ENTRYPOINT. Вы можете попробовать просмотреть docker:dind изображение.

docker inspect docker:dind

вы видите, что точка входа - это файл сценария оболочки.

"Entrypoint": [
  "dockerd-entrypoint.sh"
   ],

конечно, мы можем найти этот файл в контейнере. забраться в докер

docker run -it docker:dind sh

, а затем

cat /usr/local/bin/dockerd-entrypoint.sh

подробнее о точке входа вы можете увидеть

https://medium.freecodecamp.org/docker-entrypoint-cmd-dockerfile-best-practices-abc591c30e21

0 голосов
/ 11 января 2019

Вы должны указать докеру запускать интерактивный и tty , чтобы иметь возможность использовать оболочку.

docker run --interactive --tty docker:dind sh

или, если коротко

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