Docker в Куберне - PullRequest
       2

Docker в Куберне

0 голосов
/ 21 февраля 2020

У меня есть приложение, которому требуется docker, и приложение проверяет docker deamon при запуске. Я не могу обойтись без этого, так как это стороннее приложение.

Итак, я получаю сообщение об ошибке при попытке развернуть это приложение в kubernetes.

Failed to run 'docker -H unix:///var/run/docker.sock ps -a': exited with status 1; stderr='Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Я не уверен, что kubernetes внутренне использует docker deamon для раскручивания контейнеров. Есть ли способ обойти это?

Спасибо

Ответы [ 5 ]

0 голосов
/ 24 февраля 2020

Существует два способа запуска Docker в приложении Kubernetes.

DOOD

Docker Из Docker. Здесь вы должны смонтировать /var/run/docker.sock хоста в вашем контейнере. Через него он подключится к демону хоста. Но это более уязвимо.

DIND

Docker IN Docker. Это контейнер, который одновременно запускает Docker Daemon и Docker cli. Здесь нам не нужно монтировать /var/run/docker.sock в контейнер. Более безопасный, чем DOOD.

0 голосов
/ 24 февраля 2020

Вы можете смонтировать файл сокета docker в своем развертывании.

docker container run -d \
-v /var/run/docker.sock:/var/run/docker.sock <image-name>

Аналогичные изменения можно добавить и в развертывание Kubernetes.

Теперь ваше приложение может подключаться с помощью docker демон, работающий в вашей локальной системе.

Однако это не очень хорошая практика, так как это ставит под угрозу изоляцию безопасности, обеспечиваемую docker.

0 голосов
/ 21 февраля 2020

Похоже, docker -compose.yml, и вам это нужно. Теперь у docker есть версия с kubernetes, и вы не запустили / не установили docker, и если вы хотите использовать kubernetes в docker, убедитесь, что kubernetes активирован в ваших настройках docker, например:

docker настройки

0 голосов
/ 22 февраля 2020

kubernetes по умолчанию использует docker также в качестве среды выполнения контейнера, так что это означает, что вам нужно docker в пределах docker. Обычно это возможно, но требует дополнительной настройки и привилегий. начните с этой официальной docker статьи блога , которая должна дать вам несколько советов, как этого достичь.

0 голосов
/ 21 февраля 2020

Kubernetes может работать без docker, но приложение, которое вы используете, требует подключения к docker. Не могли бы вы попробовать запустить его с docker рабочим столом?

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