12

Я установил boot2docker и запустил:

./boot2docker start
 export DOCKER_HOST=tcp://localhost:4243

Я начал учебник с сайта Docker.

Я не понимаю одну вещь - когда я бегу:

sudo docker info
==>
Get http:///var/run/docker.sock/v1.11/info: dial unix /var/run/docker.sock: no such file or directory

Однако, когда я бегу без sudo это работает:

MacCris:bin cristianc$ docker info
Containers: 2
Images: 10
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Dirs: 14
Execution Driver: native-0.2
Kernel Version: 3.14.1-tinycore64
Debug mode (server): true
Debug mode (client): false

Любая идея, почему не работает с sudo, как в учебнике (по крайней мере для меня)?

5 ответов5

15

Переменная окружения DOCKER_HOST не установлена. Вы можете подтвердить это, выполнив:

> env

Тогда как sudo:

> sudo env

Без установленной переменной DOCKER_HOST докер не может подключиться к демону.

3

Пытаться:

sudo DOCKER_HOST=$DOCKER_HOST docker run

Таким образом, требуемая переменная окружения будет доступна с помощью sudo .

2

Если вы хотите, чтобы переменная DOCKER_HOST из вашего профиля была доступна при запуске команды docker с помощью sudo, вы можете добавить следующую строку в файл sudoers . Открыть с:

sudo visudo

Добавлять:

Defaults        env_keep += "DOCKER_HOST"
1

Если вы используете boot2docker, перейдите в папку /Application и выполните команду

$(boot2docker shellinit)

Это исправит вашу переменную DOCKER_HOST в среде.

0

Установка переменной окружения DOCKER_HOST для tcp://192.168.59.103:2375 работает для меня.

Самый быстрый способ - запустить это в командной строке (для машин OSX/Unix/Linux):

export DOCKER_HOST=tcp://192.168.59.103:2375

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .