Команда eval $ (minikube docker-env) не работает из-за ошибки «Не удается подключиться к демону Docker» - PullRequest
0 голосов
/ 04 июня 2019

Я запустил миникуб с помощью следующей команды

minikube start --insecure-registry k8s.gcr.io --insecure-registry registry-1.docker.io --insecure-registry gcr.io --insecure-registry registry.gitlab.com

После его запуска я проверяю состояние с помощью minikube status, и на выходе выводится следующее значение

host: Running
kubelet: Running
apiserver: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.107

После этого я запускаю команду eval $(minikube docker-env), чтобы она могла использовать демон docker, который использует minikube.

Эта команда выполняется так, как ожидается. Когда я проверяю DOCKER_HOST, я получаю следующее значение tcp://192.168.99.107:2376

Проблема начинается, когда я запускаю команду docker.

Например, когда я запускаю docker run hello-world, команда на некоторое время зависает, а затем я получаю следующий вывод

docker: error during connect: Post https://192.168.99.107:2376/v1.39/containers/create: Service Unavailable.

Одна вещь, которую вы можете заметить, это то, что DOCKER_HOST использует TCP, при запуске докер будет использовать HTTPS. Я не знаю, но, возможно, это поможет решить эту проблему.

1 Ответ

0 голосов
/ 12 июня 2019

HTTPS может работать по любому надежному потоковому транспортному протоколу.Обычно это TCP .

1. Проверьте, построено ли ваше изображение.

Для запуска образов Docker в Kubernetes вы можете просто использовать

$ kubectl run hello-world --image=... --port=... --image-pull-policy=...

Но вы также должны установить демон Docker.Дополнительную информацию вы можете найти здесь: docker-daemon

2. Проверьте порт 2376 , если он еще не используется.

3. Попробуйте запустить вашу команду от имени root: Запустите ее как sudo docker ... вместо docker .... Пользователь, с которым вы работаете, может не иметь прав доступа к / var/run/docker.sock в этой системе.

4. Какую версию minikube вы используете?В minikube v0.10.0 флаг --insecure-registry игнорируется, если машина уже существует.).Сначала проверьте, правильно ли скопирован --insecure-registry = в / var / lib / boot2docker / profile в новой виртуальной машине.Сначала вы должны удалить миникуб, если хотите, чтобы новые флаги были соблюдены.

Надеюсь, это поможет.

...