Uruchamianie dokera jako sudo

12

Zainstalowałem boot2docker i uruchomiłem:

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

Zacząłem samouczek ze strony Docker.

Nie rozumiem jednej rzeczy - kiedy biegam:

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

Jednak gdy uruchomię bez sudoniego, działa:

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

Każdy pomysł, dlaczego uruchamianie z sudo jak w samouczku nie działa (przynajmniej dla mnie)?

Cris
źródło
2
Wynika to z faktu, że korzystanie z sudo oczyszcza środowisko. Nie ma potrzeby używania sudo, ponieważ łączysz się przez interfejs TCP
cpuguy83

Odpowiedzi:

15

DOCKER_HOSTZmienna nie jest ustawiona. Możesz to potwierdzić, wykonując:

> env

Następnie jako sudo:

> sudo env

Bez DOCKER_HOSTzestawu zmiennych doker nie może połączyć się z demonem.

Brian Hartsock
źródło
3

Próbować:

sudo DOCKER_HOST=$DOCKER_HOST docker run

W ten sposób wymagana zmienna środowiskowa będzie dostępna z sudo.

lifeisfoo
źródło
2

Jeśli chcesz, aby DOCKER_HOSTzmienna z twojego profilu była dostępna po uruchomieniu polecenia dokera w sudo, możesz dodać następujący wiersz do sudoerspliku. Otwierać z:

sudo visudo

Dodaj:

Defaults        env_keep += "DOCKER_HOST"
surajz
źródło
1

Jeśli używasz boot2docker, przejdź do /Applicationfolderu i uruchom polecenie

$(boot2docker shellinit)

Naprawi twoją DOCKER_HOSTzmienną w środowisku.

smirnoffs
źródło
0

Ustawienie zmiennej środowiskowej DOCKER_HOSTdo tcp://192.168.59.103:2375prac dla mnie.

Najszybszym sposobem byłoby uruchomienie tego w wierszu poleceń (dla maszyn OSX / Unix / Linux):

export DOCKER_HOST=tcp://192.168.59.103:2375
Ardy Dedase
źródło