docker - docker-compose 无法连接到 docker 守护进程?
问题描述
我正在尝试通过 docker-compose 构建一个 docker 环境,但是它给出了错误。
$ docker-compose build
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
Docker 守护进程正在运行
$ sudo systemctl status docker
[sudo] password for mansop:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-02-19 12:07:27 AEDT; 22min ago
Docs: http://docs.docker.com
Main PID: 8972 (dockerd-current)
Tasks: 22
Memory: 22.8M
CGroup: /system.slice/docker.service
├─8972 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/l...
└─8978 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containe...
从 centos7 存储库安装的 Docker:
$ docker --version
Docker version 1.13.1, build 4ef4b30/1.13.1
我尝试按照错误消息设置 DOCKER_HOST,但问题仍然存在:
$ echo $DOCKER_HOST
127.0.0.1:2375
有什么想法吗?
解决方案
由于某种原因,我的系统中没有 docker 组,我的用户不是 docker 组的一部分,并且 docker 套接字文件不在 docker 组下。
下面的命令解决了我的问题:
sudo useradd docker
usermod aG docker mansop
sudo chown root:docker /var/run/docker.sock
推荐阅读
- python - 从python中的xml文件中删除子元素
- video - 将多个 ffmpeg 命令合二为一
- django - 在Django中将一个表链接到每个用户
- java - java如何从用户名=当前用户名的mongodb集合中获取最后日期(或最大日期)
- django - /blog/second 处的 TemplateSyntaxError 过滤器无效:'get_val'
- c++ - 是否保证 std::chrono::steady_clock 永远不会环绕?
- javascript - 你能帮我理解如何修复这个异步代码吗?
- python - 如何将函数的路径分配给使用 openpyxl 创建的 excel?
- python - 使用 Xarray 组合 NetCDF 文件
- r - 使用 R 提取包含一组单词的句子