Запуск докера как sudo

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, как в учебнике (по крайней мере для меня)?

Cris
источник
2
Это потому, что использование sudo очищает вашу среду. Здесь нет необходимости использовать sudo, потому что вы подключаетесь через интерфейс TCP
cpuguy83

Ответы:

15

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

> env

Тогда как sudo:

> sudo env

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

Брайан Хартсок
источник
3

Пытаться:

sudo DOCKER_HOST=$DOCKER_HOST docker run

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

lifeisfoo
источник
2

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

sudo visudo

Добавлять:

Defaults        env_keep += "DOCKER_HOST"
surajz
источник
1

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

$(boot2docker shellinit)

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

smirnoffs
источник
0

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

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

export DOCKER_HOST=tcp://192.168.59.103:2375
Арди Дедасе
источник