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

11071
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 10 лет назад 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