欢迎您, 来到 宁时修博客.^_^

Docker报错:连接不到docker daemon的socket

2018/11/19 言则行 Docker 2302
Docker使用命令报错

一、报错内容

    使用docker各种命令报错:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?


二、描述报错场景

    Docker是yum下载的,启动docker后,使用docker命令报错,连接不到docker的socket。

    并且没有 docker.sock这个文件:

cannot access /var/run/docker.sock: No such file or directory

    官网说:默认情况下,创建unix域套接字(或IPC套接字) /var/run/docker.sock,需要root权限或docker组成员身份。


    但是我也做过将root用户加入docker组:

groupadd docker
usermod -aG docker root

    root用户也确实加入docker组:

$ id
uid=0(root) gid=0(root) groups=0(root),994(docker)

    root权限和docker组权限都有,就是使用docker命令报错。

    在CentOS 7上用“journalctl -u docker.service”命令查看了日志,也没发现什么。



三、解决报错

    百度了下这个报错,大部分都是 重启docker,试了试,还是没有解决。

    查看官网:https://docs.docker.com/engine/reference/commandline/dockerd/#examples

    有以下这么一句:

    可以使用多个 -H 选项将Docker守护程序配置为同时侦听多个套接字:

dockerd -H unix:///var/run/docker.sock -H tcp://192.168.59.106 -H tcp://10.10.10.2

    

    我使用ps 命令查看了,docker进程:

[root@web ~]# ps -ef|grep docker
root      22868      1  0 21:10 ?        00:00:00 /usr/bin/dockerd -H unix:///

    socket路径不完整。


    只好自己添加:

$ vim /etc/systemd/system/multi-user.target.wants/docker.service
...................
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock
................

    保存重启Docker:

systemctl daemon-reload
systemctl restart docker


    再查看进程:

$ ps -ef|grep docker
root      23033      1  1 21:27 ?        00:00:00 /usr/bin/dockerd -H unix:///var/run/docker.sock


    使用docker命令:

$ docker image ls
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
192.168.184.36:5000/ubuntu   latest              ea4c82dcd15a        4 weeks ago         85.8MB


    已经不报错了。

    

    虽然解决了报错,但是具体为什么报错,详细原因不明白。再查查看。


点赞
说说你的看法

所有评论: (0)