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

11021
Cris

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

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

5 ответов на вопрос

15
Brian Hartsock

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

> env 

Тогда как sudo:

> sudo env 

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

3
lifeisfoo

Пытаться:

sudo DOCKER_HOST=$DOCKER_HOST docker run 

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

2
surajz

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

sudo visudo 

Добавлять:

Defaults env_keep += "DOCKER_HOST" 
1
smirnoffs

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

$(boot2docker shellinit) 

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

0
Ardy Dedase

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

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

export DOCKER_HOST=tcp://192.168.59.103:2375