Не удается подключиться к демону Docker при работе с sudo

моя служба докеров запущена и работает. Однако при попытке использовать Docker, запустив его с помощью sudo, например:

12:40:26/~ $ sudo docker pull fluxcapacitor/pipeline
Using default tag: latest

у меня есть следующая ошибка:

Warning: failed to get default registry endpoint from daemon (Cannot connect to 
the Docker daemon. Is the docker daemon running on this host?). Using system 
default: https://index.docker.io/v1/
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

обратите внимание, что я уже следил за ответами на Mac OS X sudo docker не удается подключиться к демону Docker. Демон docker работает на этом хосте?

следующим образом:

докер-машина начала по умолчанию

12:40:36/~ $ docker-machine start default
Starting "default"...
Machine "default" is already running.

докер ps

12:41:20/~ $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

что еще нужно сделать?

это:

$ docker --version
Docker version 1.11.2, build b9f10c9

on El Capitan.

выход docker-machine env default

$ eval "$(docker-machine env default)"

$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/macuser/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"

3 ответов


следующая команда экспортирует несколько переменных среды, которые используют последующие команды docker:

eval "$(docker-machine env default)"

однако при запуске docker с sudo экспортированные переменные среды недоступны исполняемому файлу docker. Вы могли бы потенциально заставить его работать, пройдя -E флаг sudo, например:

sudo -E docker pull fluxcapacitor/pipeline

но гораздо проще использовать docker без root, как:

docker pull fluxcapacitor/pipeline

вы должны установить переменные окружения:

eval "$(docker-machine env default)"

больше здесь.


у меня был такой же probelem на моем MAC, когда попытался

# eval "$(docker-machine env default)"

получил эту ошибку

Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376": x509: certificate is valid for 192.168.99.101, not 192.168.99.100
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.

чтобы регенерировать сертификаты, узнайте доступные docker-машины;

# docker-machine ls

выход доступных докеров (опущены другие)

NAME          ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default       -        virtualbox   Running   tcp://192.168.99.100:2376           Unknown   Unable to query docker version: Get https://192.168.99.100:2376/v1.15/version: x509: certificate is valid for 192.168.99.101, not 192.168.99.100

создание сертификатов для этого docker-machine по умолчанию

# docker-machine regenerate-certs default

а затем настройка docker-machine env в default докер-машина;

# eval "$(docker-machine env default)"

и он работает нормально после что.