问题描述
在Linux Mint 17.1 x86_64上,内核3.13.0-48-generic和OpenSSL版本1.0.1f-1ubuntu2.11;每当我尝试执行任何docker命令(例如docker login
或docker 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用户和正常身份运行命令,并按照here,restarted my PC的指示将$(boot2docker shellinit 2> /dev/null)
添加到~/.profile
并重新安装。
知道我想念什么吗?这可能是硬件问题吗?
最佳方案
您可以通过运行命令ps -ef
检查它是否已启动。如果您想减少结果数量,也可以将其grep到docker
(使用| grep docker
)。如果没有运行,请执行
sudo service docker start
或者,如果仍然无法使用,
您可以参考此链接
您可以运行docker run -d
或docker run -d &
,以便可以使用相同的终端,甚至可以关闭该终端。它将值设置为true,因此您的容器将在后台以”detached”模式运行。
您也可以在操作系统开始使用update-rc.d servicename defaults
时自动启动它,或者您也可以参考下面的链接,在这些链接中必须提供docker
作为服务名称和默认值。
其他更多链接可参考-auto start,upstart
这些是不同的方法。
次佳方案
我在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的工作方式。