Exécuter Docker en tant que sudo

12

J'ai installé boot2docker et j'ai couru:

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

J'ai commencé un tutoriel sur le site Docker.

Je ne comprends pas une chose - quand je cours:

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

Cependant quand je cours sans sudoça marche:

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

Une idée pourquoi courir avec sudo comme dans le tutoriel ne fonctionne pas (au moins pour moi)?

Cris
la source
2
C'est parce que l'utilisation de sudo efface votre env. Il n'est pas nécessaire d'utiliser sudo ici car vous vous connectez via l'interface TCP
cpuguy83

Réponses:

15

La DOCKER_HOSTvariable d'environnement n'est pas définie. Vous pouvez le confirmer en faisant:

> env

Puis en tant que sudo:

> sudo env

Sans l' DOCKER_HOSTensemble de variables, docker ne peut pas se connecter au démon.

Brian Hartsock
la source
3

Essayer:

sudo DOCKER_HOST=$DOCKER_HOST docker run

De cette façon, la variable d'environnement requise sera disponible avec sudo.

lifeisfoo
la source
2

Si vous souhaitez que la DOCKER_HOSTvariable de votre profil soit disponible lorsque vous exécutez la commande docker avec sudo, vous pouvez ajouter la ligne suivante au sudoersfichier. Ouvrir avec:

sudo visudo

Ajouter:

Defaults        env_keep += "DOCKER_HOST"
surajz
la source
1

Si vous utilisez boot2docker, accédez au /Applicationdossier et exécutez la commande

$(boot2docker shellinit)

Il corrigera votre DOCKER_HOSTvariable dans l'environnement.

smirnoffs
la source
0

Réglage de la variable d'environnement DOCKER_HOSTà des tcp://192.168.59.103:2375œuvres pour moi.

Le moyen le plus rapide serait d'exécuter ceci dans votre ligne de commande (pour les machines OSX / Unix / Linux):

export DOCKER_HOST=tcp://192.168.59.103:2375
Ardy Dedase
la source