Running docker as sudo

12

Eu instalei o boot2docker e eu corri:

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

Eu iniciei um tutorial no site do Docker.

Eu não entendo uma coisa - quando eu corro:

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

No entanto, quando eu corro sem sudo , funciona:

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

Alguma idéia do porquê rodar com o sudo como no tutorial não funciona (pelo menos para mim)?

    
por Cris 29.05.2014 / 21:16

5 respostas

15

A variável de ambiente DOCKER_HOST não está definida. Você pode confirmar isso fazendo:

> env

Então, como sudo:

> sudo env

Sem a variável DOCKER_HOST definida, o docker não pode se conectar ao daemon.

    
por 26.06.2014 / 14:31
3

Tente:

sudo DOCKER_HOST=$DOCKER_HOST docker run

Desta forma, a variável de ambiente necessária estará disponível com sudo .

    
por 07.08.2014 / 11:48
2

Se você quiser que a variável DOCKER_HOST do seu perfil esteja disponível ao executar o comando do docker com o sudo, você poderá adicionar a seguinte linha ao arquivo sudoers . Abrir com:

sudo visudo

Adicionar:

Defaults        env_keep += "DOCKER_HOST"
    
por 13.08.2014 / 23:32
1

Se você estiver usando boot2docker, vá para a pasta /Application e execute o comando

$(boot2docker shellinit)

Isso consertará sua variável DOCKER_HOST no ambiente.

    
por 18.10.2014 / 11:15
0

Definir a variável de ambiente DOCKER_HOST to tcp://192.168.59.103:2375 funciona para mim.

A maneira mais rápida seria rodar isso na sua linha de comando (para máquinas OSX / Unix / Linux):

export DOCKER_HOST=tcp://192.168.59.103:2375
    
por 12.10.2014 / 03:14