我正在执行this码头工程教程的第一步。 我在虚拟机vm上安装了ubuntu 14.04版。 我故意通过docker版本降级,以便在我键入" docker version"我得到客户端版本:1.5.0。这是因为我打算与之通信的服务器是1.5.0。
尝试命令" docker run hello-world
"我得到了答复:
"Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?"
运行" sudo docker run hello-world
"我得到了答复:
Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
有人可以向我解释一下发生了什么以及如何解决这个问题? 感谢。
编辑:我尝试按照Linux here
的解决方案进行操作然而,
我曾尝试在该帖子中关注El Mesa的说明。但是,当我运行sudo docker -d时,我遇到运行DeviceCreate(createPool)的错误dm_task_run失败。我不认为我需要启动任何东西,因为我只是按照教程和教程刚刚在安装docker之后立即运行hello-world
答案 0 :(得分:1)
请注意紧接在之前的文本您是否尝试连接到错误消息中没有TLS 的启用TLS的守护程序。在这里提出的问题是权限被拒绝,但它也可能没有这样的文件或目录(或可能是别的东西)。前者更可能意味着当前用户缺乏访问docker的权限,而后者更可能意味着docker服务本身存在问题,包括它根本不运行的可能性。
因此,根据您的情况,寻找答案和答案 linked question页面专注于各自的问题区域。
在我的情况下(CentOS Linux版本7.1.1503(Core),docker-1.7.1-108.el7.centos.x86_64),权限被拒绝。我已将用户添加到docker组(sudo usermod -a -G docker user )但是当我在 user 下运行它时,docker命令仍无法正常工作在sudo下很好。我忘记做的是在将用户添加到docker组之后将其记录下来并重新登录,这是组成员身份生效所必需的步骤。
重新启动计算机也将解决此问题,但这是一个更激烈的步骤,并且将起作用,因为它将意味着退出/登录步骤。我建议在重新启动之前尝试注销并重新登录,因为如果它有效,它将使您更有信心组成员身份是实际问题。如果它不起作用你总是可以尝试重新启动,但如果它在那之后工作它可能会起作用,因为重新启动会解决其他一些潜在的问题。
还有一件事,如果你遇到它并发现自己有疑问 - 当你第一次安装docker并希望将用户添加到docker组时,你可能会注意到(就像我在我的情况下那样)“dockerroot”组存在但不是“docker”组。假设这是您需要的用户,请不要将用户添加到dockerroot组。而是创建新的docker组并将用户添加到其中。
答案 1 :(得分:0)
可能是您的docker守护程序未运行。
我在桌面上安装了无线局域网的ubuntu / docker。
与docker工作正常的有线计算机相比,它有点挑剔,并且复制了您报告的错误消息:
$ docker run -it ubuntu:latest /bin/bash
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?
然而,在跑完之后:
sudo service docker start
它的行为正确(至少在主机重启之前):
$ docker run -it ubuntu:latest /bin/bash
root@2cea4e5f5028:/#
如果系统未在启动时启动docker守护程序(如此处所示),则可以通过编辑/etc/rc.local
来自动启动docker守护程序以执行此操作。在exit
行之前添加以下行。这将分叉一个新的bash shell,等待30秒进行网络设置等,然后解决,并启动docker守护进程。此处不需要sudo
,因为/etc/rc.local
运行为root
。
( sleep 30; /usr/sbin/service docker start ) &