Ejecutando Docker como sudo

12

Instalé boot2docker y ejecuté:

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

Comencé un tutorial desde el sitio de Docker.

No entiendo una cosa: cuando corro:

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

Sin embargo, cuando corro sin sudofunciona:

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

¿Alguna idea de por qué no funciona con sudo como en el tutorial (al menos para mí)?

Cris
fuente
2
Esto se debe a que usar sudo está limpiando su entorno. No hay necesidad de usar sudo aquí porque se está conectando a través de la interfaz TCP
cpuguy83

Respuestas:

15

La DOCKER_HOSTvariable de entorno no está establecida. Puede confirmar esto haciendo:

> env

Entonces como sudo:

> sudo env

Sin el DOCKER_HOSTconjunto de variables, Docker no puede conectarse al demonio.

Brian Hartsock
fuente
3

Tratar:

sudo DOCKER_HOST=$DOCKER_HOST docker run

De esta manera, la variable de entorno requerida estará disponible con sudo.

lifeisfoo
fuente
2

Si desea que la DOCKER_HOSTvariable de su perfil esté disponible cuando ejecuta el comando docker con sudo, puede agregar la siguiente línea al sudoersarchivo. Abrir con:

sudo visudo

Añadir:

Defaults        env_keep += "DOCKER_HOST"
surajz
fuente
1

Si está usando boot2docker, vaya a la /Applicationcarpeta y ejecute el comando

$(boot2docker shellinit)

Arreglará su DOCKER_HOSTvariable en el entorno.

smirnoffs
fuente
0

Establecer la variable de entorno DOCKER_HOSTpara que tcp://192.168.59.103:2375funcione para mí.

La forma más rápida sería ejecutar esto en su línea de comando (para máquinas OSX / Unix / Linux):

export DOCKER_HOST=tcp://192.168.59.103:2375
Ardy Dedase
fuente