Docker:您是否尝试连接到启用 TLS 的守护进程而不使用 TLS?
Docker: Are you trying to connect to a TLS-enabled daemon without TLS?
在 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 和正常方式执行命令,将 $(boot2docker shellinit 2> /dev/null)
添加到 ~/.profile
按照指示 here, 并重新安装了 OpenSSL。
知道我错过了什么吗?这可能是硬件问题吗?
您可以通过运行命令ps -ef
检查它是否已经启动。如果您想减少结果的数量(使用 | grep docker
),您也可以将其 grep 到 docker
。如果不是运行ning,执行
sudo service docker start
或者如果还是不行的话
你可以参考这个link
您可以 运行 docker run -d
或 docker run -d &
以便您可以使用相同的终端甚至关闭它。它会将值设置为 true,因此您的容器将在后台以 "detached" 模式 运行。
您也可以在 OS 开始使用 update-rc.d servicename defaults
时自动启动它,或者您也可以参考下面的 links,其中您必须提供 docker
作为服务名称和您的默认值。
还有一些link供参考-
auto start,
upstart
这些是不同的实现方式。
我在CentOS 7上部署了docker,朋友先帮我查了一下process/service docker
是不是真的运行。他使用了命令ps -ef | grep docker
。事实证明,这个过程根本不是 运行。最后,他使用命令service docker start
开始了这个过程。最后,问题解决了。
尝试安装 apparmor
sudo apt install apparmor
还有其他东西需要寻找。
运行 今天早上遇到同样的问题。您可能只想做 service docker start
。它适用于 centos(适用于所有人),它是我一直忘记的那些小烦人的事情之一。
从技术上讲,当您第一次安装诸如 docker 或 httpd (apache) 之类的服务时,它实际上需要启动,否则您将收到该错误。您还可以通过执行 service service_name status
查看其他服务的状态,但我的 centos 7 也是如此。
运行 在执行 https://docs.docker.com/linux/step_one/ 中的步骤后遇到同样的问题。 docker 服务是 运行,我也已将用户添加到 docker 组。 docker 如果没有 sudo,命令将无法工作。
为我解决的是重启电脑。
注意 - 在 PC 重新启动之前,我还尝试停止和启动 docker 守护进程。我在 Ubuntu 12.04.
在我的例子中是因为文件 /Users/user/.ssh/config
的权限为 777。
在终端 ssh docker@localhost
中检查 运行
我在从 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
希望对您有所帮助。
当 docker 服务无法启动时,可能会发生这种情况。
sudo service docker start
或 restart
无输出不代表启动成功。
您可以使用 sudo /etc/init.d/docker status
来查明是否启动失败以及启动失败的原因。
在我的例子中,这是由于缺少磁盘 space。
username@computer:~$ sudo service docker restart
username@computer:~$ sudo /etc/init.d/docker status
? docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: start-limit) since Mon 2015-12-21 15:11:59 PST; 21s ago
Docs: http://docs.docker.com
Process: 26463 ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS (code=exited, status=1/FAILURE)
Main PID: 26463 (code=exited, status=1/FAILURE)
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=info msg="Listening for HTTP on fd ()"
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=info msg="+job init_networkdriver()"
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=info msg="-job init_networkdriver() = OK (0)"
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=fatal msg="Shutting down daemon due to errors: Insertion failed because database is full: database or disk is full"
Dec 21 15:11:59 computer systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Dec 21 15:11:59 computer systemd[1]: Unit docker.service entered failed state.
Dec 21 15:11:59 computer systemd[1]: docker.service failed.
Dec 21 15:11:59 computer systemd[1]: start request repeated too quickly for docker.service
Dec 21 15:11:59 computer systemd[1]: Failed to start Docker Application Container Engine.
Dec 21 15:11:59 computer systemd[1]: docker.service failed.
删除一些文件后,我能够正常重启服务和 运行 docker 个容器。
sudo chmod 777 /var/run/docker.sock
我在 sudo 模式下通过 运行 该命令解决了它,例如"sudo docker images"
运行 在执行 https://docs.docker.com/linux/step_one/ 中的步骤后遇到同样的问题。 docker 服务是 运行,我也已将用户添加到 docker 组。 docker 如果没有 sudo,命令将无法工作。
为我解决的是重启电脑。注意 - 在 PC 重新启动之前,我还尝试停止和启动 docker 守护程序。我在 Ubuntu 12.04.
在 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 和正常方式执行命令,将 $(boot2docker shellinit 2> /dev/null)
添加到 ~/.profile
按照指示 here,
知道我错过了什么吗?这可能是硬件问题吗?
您可以通过运行命令ps -ef
检查它是否已经启动。如果您想减少结果的数量(使用 | grep docker
),您也可以将其 grep 到 docker
。如果不是运行ning,执行
sudo service docker start
或者如果还是不行的话
你可以参考这个link
您可以 运行 docker run -d
或 docker run -d &
以便您可以使用相同的终端甚至关闭它。它会将值设置为 true,因此您的容器将在后台以 "detached" 模式 运行。
您也可以在 OS 开始使用 update-rc.d servicename defaults
时自动启动它,或者您也可以参考下面的 links,其中您必须提供 docker
作为服务名称和您的默认值。
还有一些link供参考- auto start, upstart
这些是不同的实现方式。
我在CentOS 7上部署了docker,朋友先帮我查了一下process/service docker
是不是真的运行。他使用了命令ps -ef | grep docker
。事实证明,这个过程根本不是 运行。最后,他使用命令service docker start
开始了这个过程。最后,问题解决了。
尝试安装 apparmor
sudo apt install apparmor
还有其他东西需要寻找
运行 今天早上遇到同样的问题。您可能只想做 service docker start
。它适用于 centos(适用于所有人),它是我一直忘记的那些小烦人的事情之一。
从技术上讲,当您第一次安装诸如 docker 或 httpd (apache) 之类的服务时,它实际上需要启动,否则您将收到该错误。您还可以通过执行 service service_name status
查看其他服务的状态,但我的 centos 7 也是如此。
运行 在执行 https://docs.docker.com/linux/step_one/ 中的步骤后遇到同样的问题。 docker 服务是 运行,我也已将用户添加到 docker 组。 docker 如果没有 sudo,命令将无法工作。
为我解决的是重启电脑。 注意 - 在 PC 重新启动之前,我还尝试停止和启动 docker 守护进程。我在 Ubuntu 12.04.
在我的例子中是因为文件 /Users/user/.ssh/config
的权限为 777。
在终端 ssh docker@localhost
我在从 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
希望对您有所帮助。
当 docker 服务无法启动时,可能会发生这种情况。
sudo service docker start
或 restart
无输出不代表启动成功。
您可以使用 sudo /etc/init.d/docker status
来查明是否启动失败以及启动失败的原因。
在我的例子中,这是由于缺少磁盘 space。
username@computer:~$ sudo service docker restart
username@computer:~$ sudo /etc/init.d/docker status
? docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: start-limit) since Mon 2015-12-21 15:11:59 PST; 21s ago
Docs: http://docs.docker.com
Process: 26463 ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS (code=exited, status=1/FAILURE)
Main PID: 26463 (code=exited, status=1/FAILURE)
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=info msg="Listening for HTTP on fd ()"
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=info msg="+job init_networkdriver()"
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=info msg="-job init_networkdriver() = OK (0)"
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=fatal msg="Shutting down daemon due to errors: Insertion failed because database is full: database or disk is full"
Dec 21 15:11:59 computer systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Dec 21 15:11:59 computer systemd[1]: Unit docker.service entered failed state.
Dec 21 15:11:59 computer systemd[1]: docker.service failed.
Dec 21 15:11:59 computer systemd[1]: start request repeated too quickly for docker.service
Dec 21 15:11:59 computer systemd[1]: Failed to start Docker Application Container Engine.
Dec 21 15:11:59 computer systemd[1]: docker.service failed.
删除一些文件后,我能够正常重启服务和 运行 docker 个容器。
sudo chmod 777 /var/run/docker.sock
我在 sudo 模式下通过 运行 该命令解决了它,例如"sudo docker images"
运行 在执行 https://docs.docker.com/linux/step_one/ 中的步骤后遇到同样的问题。 docker 服务是 运行,我也已将用户添加到 docker 组。 docker 如果没有 sudo,命令将无法工作。
为我解决的是重启电脑。注意 - 在 PC 重新启动之前,我还尝试停止和启动 docker 守护程序。我在 Ubuntu 12.04.