Executando a janela de encaixe como sudo

12

Instalei o boot2docker e executei:

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

Comecei um tutorial no site do Docker.

Não entendo uma coisa - quando 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 sudoele 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 de por que rodar com o sudo como no tutorial não funciona (pelo menos para mim)?

Cris
fonte
2
Isso ocorre porque o uso do sudo está limpando seu ambiente. Não há necessidade de usar sudo aqui porque você está se conectando pela interface TCP
cpuguy83

Respostas:

15

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

> env

Então, como sudo:

> sudo env

Sem o DOCKER_HOSTconjunto de variáveis, o docker não pode se conectar ao daemon.

Brian Hartsock
fonte
3

Experimentar:

sudo DOCKER_HOST=$DOCKER_HOST docker run

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

lifeisfoo
fonte
2

Se você deseja que a DOCKER_HOSTvariável do seu perfil esteja disponível ao executar o comando docker com o sudo, adicione a seguinte linha ao sudoersarquivo. Abrir com:

sudo visudo

Adicionar:

Defaults        env_keep += "DOCKER_HOST"
surajz
fonte
1

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

$(boot2docker shellinit)

Ele corrigirá sua DOCKER_HOSTvariável no ambiente.

smirnoffs
fonte
0

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

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

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