码头工人的问题


32

我正在尝试在ubuntu 15.04中学习“ Docker”。

当我使用docker发出“ docker run image”之类的命令时,出现以下错误:

FATA[0000] Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

我不明白这是什么意思。


5
我收到此错误消息,然后使用启动启动守护进程sudo service docker start。然后我可以跑步了sudo docker run hello-world。祝好运。
剥壳机

Answers:


31

出现此错误的可能原因有两个:

  1. Docker守护程序未运行。您可以使用进行检查sudo /etc/init.d/docker status

  2. Docker守护程序正在运行,但配置为不监听/var/run/docker.sock。您可以检查是否在中指定了/etc/default/docker任何-H选项DOCKER_OPTS


3
+1。$ sudo service docker status自从收到我就必须使用$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
IsaacS 2015年

运行后sudo /etc/init.d/docker status,我认识到docker服务已关闭。我运行sudo /etc/init.d/docker start,然后就可以运行我的docker映像。
哈利尔2015年

似乎/ etc / default / docker在systemd(Ubuntu 16.04+)上不再有用。顺便说一句,在systemd 上检查守护程序状态的典型方法是sudo systemctl status docker
巴勃罗A A

38

安装Docker后,系统会提示您将用户添加到Docker组。只需运行显示的命令:

sudo usermod -aG docker $USER

您需要关闭会话并再次登录才能使更改生效。


可能是最简单的。我不知道它是否有效,尽管(使用@decebal的)答案。
Yair Daon 2015年

我没有得到这个提示。我在Raspberry Pi上。
IgorGanapolsky '17

要将自己添加到Docker组中,请运行sudo usermod -a -G docker <user>。有关更多信息,请参见此处
休W

3
强调“关闭会议”-谢谢!
Dolan Antenucci

在具有Gnome的Ubuntu 18.04上,我必须重新启动系统才能正常工作。只要在退出并重新没有工作:/
佐尔坦

15

如果您的用户加入了docker group,请在安装docker后尝试重新启动操作系统以应用组权限。

更新:

当Docker在ubuntu 14.04上安装时,安装程​​序会建议您的用户添加到Docker组中的内容以访问Docker Service。

看着

泊坞窗守护程序绑定到Unix套接字而不是TCP端口。默认情况下,Unix套接字是由root用户拥有的,其他用户可以使用sudo访问它。因此,docker守护程序始终以root用户身份运行。为了避免在使用docker命令时必须使用sudo,请创建一个名为docker的Unix组并将用户添加到其中。docker守护程序启动时,它将使docker组可以读取/写入Unix套接字的所有权。

来源:https : //docs.docker.com/installation/ubuntulinux/#create-a-docker-group


2
您应该解释为什么这会有所帮助。
贡特伯特2015年

1
@guntbert我有更新我的答案..
MURATSPLAT

@ MURATSPLAT,qbi,gunbert谢谢,我找到了解决方案
rishi kant

使组权限更改生效。您无需重启。注销就足够了。
Tim Wu

@TimWu在Ubuntu 18.04与侏儒,我不得不重新启动系统-只要注销并重新没有工作:/
佐尔坦

10

尝试使用sudo docker images来检查<image>主机中是否有一个称为的容器。

运行docker run <image><image>在您的主机中启动一个名为的容器,如果您的主机中没有该容器,则docker会像您的运行方式一样自动从存储库中心提取一个名为的容器docker pull <image>。然后,如果仍然找不到名为“”的图像,则它将显示此错误消息。

您可以尝试更换以hello-world查看docker是否在您的计算机上工作。

sudo docker run hello-world

另外,您应该检查是否应使用sudo


2
如果问题是OP没有使用sudo,则错误消息将是“权限被拒绝”而不是“没有这样的文件或目录”。
Andreas Veithen

1
是的,你是对的。我尝试过,如果用户没有权限,错误消息将是:FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
realhu 2015年

2
尝试授予权限sudo usermod -a -G docker ec2-user
AB


2

尝试拉取图像时收到类似的消息。我只是做了sudo su,然后就能成功提取图像。


2
欢迎来到Ask Ubuntu!我建议编辑此答案以将其扩展为有关如何执行此操作的特定详细信息。(另请参阅“我如何编写一个好的答案?”,以获取有关在Ask Ask Ubuntu上认为最有价值的答案的一般建议。)但是请注意,已经有人建议以超级用户身份运行Docker。
David Foerster,2015年

我已经解决了我的问题。
康德
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.