Працює докер як судо


12

Я встановив boot2docker і побіг:

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

Я розпочав підручник із сайту Докер.

Я не розумію одного - коли біжу:

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

Будь-яка ідея, чому працювати з судо, як у підручнику, не працює (принаймні, для мене)?


2
Це тому, що використання судо очищає ваше оточення. Тут не потрібно використовувати sudo, оскільки ви підключаєтесь через інтерфейс TCP
cpuguy83

Відповіді:


15

DOCKER_HOSTМінлива оточення не встановлена. Ви можете підтвердити це, зробивши:

> env

Тоді як судо:

> 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.