以sudo运行docker


12

我安装了boot2docker并运行:

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

我从Docker站点开始了一个教程。

我不了解一件事-当我跑步时:

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

但是,当我在没有sudo它的情况下运行时:

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

知道为什么在本教程中使用sudo运行不起作用(至少对我而言)吗?


2
这是因为使用sudo会清除您的环境。此处无需使用sudo,因为您正在通过TCP接口进行连接
cpuguy83 2014年

Answers:


15

DOCKER_HOST环境变量没有设置。您可以通过执行以下操作来确认这一点:

> env

然后作为sudo:

> sudo env

如果没有设置DOCKER_HOST变量,则docker无法连接到守护程序。


3

尝试:

sudo DOCKER_HOST=$DOCKER_HOST docker run

这样,所需的环境变量将可用于sudo


2

如果DOCKER_HOST在使用sudo运行docker命令时希望配置文件中的变量可用,则可以将以下行添加到sudoers文件中。打开用:

sudo visudo

加:

Defaults        env_keep += "DOCKER_HOST"

1

如果您使用的是boot2docker,请转到/Application文件夹并运行以下命令

$(boot2docker shellinit)

它将DOCKER_HOST在环境中修复您的变量。


0

环境变量设置DOCKER_HOSTtcp://192.168.59.103:2375对我的作品。

最快的方法是在命令行中运行此命令(对于OSX / Unix / Linux计算机):

export DOCKER_HOST=tcp://192.168.59.103:2375
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.