当前位置: 首页>>技术教程>>正文


linux – Docker:您是否尝试连接到不带TLS的TLS-enabled守护程序?

, , , ,

问题描述

在Linux Mint 17.1 x86_64上,内核3.13.0-48-generic和OpenSSL版本1.0.1f-1ubuntu2.11;每当我尝试执行任何docker命令(例如docker logindocker run hello-world)时,都会出现以下错误:

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

我已经使用sudo usermod -aG docker username组成了一个名为docker的组,我尝试同时以root用户和正常身份运行命令,并按照hererestarted my PC的指示将$(boot2docker shellinit 2> /dev/null)添加到~/.profile并重新安装。

知道我想念什么吗?这可能是硬件问题吗?

最佳方案

您可以通过运行命令ps -ef检查它是否已启动。如果您想减少结果数量,也可以将其grep到docker(使用| grep docker)。如果没有运行,请执行

sudo service docker start

或者,如果仍然无法使用,

您可以参考此链接

docker docs

您可以运行docker run -ddocker run -d &,以便可以使用相同的终端,甚至可以关闭该终端。它将值设置为true,因此您的容器将在后台以”detached”模式运行。

您也可以在操作系统开始使用update-rc.d servicename defaults时自动启动它,或者您也可以参考下面的链接,在这些链接中必须提供docker作为服务名称和默认值。

其他更多链接可参考-auto startupstart

这些是不同的方法。

次佳方案

我在CentOS 7上部署了docker,而我的朋友首先帮助我检查了进程/服务docker是否实际上在运行。他使用了命令ps -ef | grep docker。事实证明,该过程根本没有运行。最后,他使用命令service docker start开始了此过程。最后,问题解决了。

第三种方案

尝试安装Apparmor

sudo apt install apparmor

in this answer也需要寻找其他东西。

第四种方案

我从Jenkins创建Docker映像时遇到了相同的问题,只需将用户添加到docker组中,然后重新启动docker服务,就我而言,我必须重新启动Jenkins服务

这是我得到的错误

http:///var/run/docker.sock/v1.19/build?cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&memory=0&memswap=0&rm=1&t=59aec062a8dd8b579ee1b61b299e1d9d340a1340: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
FATAL: Failed to build docker image from project Dockerfile
java.lang.RuntimeException: Failed to build docker image from project Dockerfile


Solution: 

[root@Jenkins ssh]# groupadd docker
[root@Jenkins ssh]# gpasswd -a jenkins docker
Adding user jenkins to group docker
[root@Jenkins ssh]# /etc/init.d/docker restart
Stopping docker:                                           [  OK  ]
Starting docker:                                           [  OK  ]
[root@Jenkins ssh]# /etc/init.d/jenkins restart
Shutting down Jenkins                                      [  OK  ]
Starting Jenkins                                           [  OK  ]
[root@Jenkins ssh]#

第五种方案

当我尝试跟随一些在线资源时,我也遇到了同样的问题。我能够通过以超级用户身份运行docker来解决此问题,尝试在docker命令之前添加sudo

sudo docker ps -a

sudo docker run hello-world

希望能帮助到你。

第六种方案

今天早上遇到了同样的问题。您可能只想做service docker start。它适用于centos(可能适用于所有人),它是我一直都忘记的那些细小烦恼之一。

从技术上讲,当您首次安装诸如docker或httpd(apache)之类的服务时,实际上需要启动该服务,否则会出现该错误。您还可以通过执行service service_name status来查看其他服务的状态,但是同样,这也是我的centos 7的工作方式。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7985.html,未经允许,请勿转载。