docker本地默认是unix socket,这里报错是使用了tcp,默认情况下,Unix的socket属于用户root,其它用户要使用要通过sudo命令。由于这个原因,docker daemon通常使用root用户运行,使用了几种解决方式。

一丶未成功的(万一你们成了呢 #滑稽):

  1. 编辑/etc/docker/daemon.json 无效
{
  "registry-mirrors": ["https://kf0vxqi6.mirror.aliyuncs.com"],
  "hosts": [
        "tcp://0.0.0.0:2376",
        "unix:///var/run/docker.sock"
    ]
}
  1. 添加用户组 无效
$ sudo groupadd docker
groupadd: group 'docker' already exists
$ sudo gpasswd -a <你的用户名> docker
$ sudo service docker restart
  1. systemctl restart docker无效

二丶成功的:

  1. 使用sudo + 命令 (每次多写sudo,还要输密码,密码错了还要重来 :P )
sudo docker ps
  1. unset DOCKER_HOST (一次性的,不设置DOCKER_HOST)

  2. 修改 ~/.bashrc文件

vi ~/.bashrc
# 在最下面添加一行:
export DOCKER_HOST='unix:///var/run/docker.sock'
source .bashrc
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐