Docker-compose up:获取服务器 API 版本时出错:('连接中止。',ConnectionRefusedError(61,'连接被拒绝'))

bla*_*566 26 php api docker server docker-compose

我正在尝试docker-compose up在我的终端中执行命令。首先,我导航到找到 docker-compose.yaml 的文件目录。然后我写命令。服务器在端口 80 上。我收到以下错误:

Traceback (most recent call last):
      File "site-packages/docker/api/client.py", line 205, in _retrieve_server_version
      File "site-packages/docker/api/daemon.py", line 181, in version
      File "site-packages/docker/utils/decorators.py", line 46, in inner
      File "site-packages/docker/api/client.py", line 228, in _get
      File "site-packages/requests/sessions.py", line 543, in get
      File "site-packages/requests/sessions.py", line 530, in request
      File "site-packages/requests/sessions.py", line 643, in send
      File "site-packages/requests/adapters.py", line 498, in send
    requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionRefusedError(61, 'Connection refused'))
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "docker-compose", line 3, in <module>
      File "compose/cli/main.py", line 67, in main
      File "compose/cli/main.py", line 123, in perform_command
      File "compose/cli/command.py", line 69, in project_from_options
      File "compose/cli/command.py", line 132, in get_project
      File "compose/cli/docker_client.py", line 43, in get_client
      File "compose/cli/docker_client.py", line 170, in docker_client
      File "site-packages/docker/api/client.py", line 188, in __init__
      File "site-packages/docker/api/client.py", line 213, in _retrieve_server_version
    docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', ConnectionRefusedError(61, 'Connection refused'))
    [12728] Failed to execute script docker-compose
Run Code Online (Sandbox Code Playgroud)

第一个错误出现两次,然后出现第二次。

小智 59

sudo chmod 666 /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)

这对我有用

  • 这是**极其**不安全的。仅供参考,授予用户访问 docker.sock 的权限就像授予他们 sudo 一样 (8认同)

Zst*_*ack 36

将您的用户添加到 docker 组并重试。

sudo gpasswd -a $USER docker
newgrp docker
Run Code Online (Sandbox Code Playgroud)

如果问题仍然存在,您可以在注销并重新登录后尝试,或者重新启动。或者干脆做:

sudo su $USER
Run Code Online (Sandbox Code Playgroud)

注意:如果您的机器上没有运行 docker,这也可能发生。对于带有 sytemd 服务管理器的 linux,您可以使用以下命令进行验证:

systemctl status docker.service
Run Code Online (Sandbox Code Playgroud)

  • 对我有用的方法:重置 docker,导航到我的项目文件夹并再次执行 docker-compose up。 (2认同)

小智 22

如果您使用 Mac,只需打开 Docker Desktop

  • 不是基于云的系统的解决方案 (20认同)
  • 不适用于 ubuntu Linux (17认同)

bis*_*mov 11

确保您的 docker 确实在您的计算机上运行。您可以使用这篇文章:如何检查 docker 引擎和 docker 容器是否正在运行?


Pro*_*ton 10

为了使Zstack 的答案更加清晰。

我在尝试在Ubuntu 20.04上设置Ansible AWX时遇到了这个问题

致命:[localhost]:失败!=> {"changed": false, "msg": "连接错误:获取服务器 API 版本时出错:('连接中止。', PermissionError(13, '权限被拒绝'))"} ...忽略

这是我修复它的方法

这个问题是因为我没有将当前用户添加到 docker 组而引起的。

如果 docker 组尚不存在,则创建该组。

sudo groupadd docker
Run Code Online (Sandbox Code Playgroud)

将您的用户添加到 docker 组。

sudo usermod -aG docker $USER
Run Code Online (Sandbox Code Playgroud)

注销并重新登录,以便重新评估您的组成员资格。

验证您是否可以在没有sudo.

docker ps
Run Code Online (Sandbox Code Playgroud)

就这样。

  • 我不需要第一个命令 `sudo groupadd docker`,我猜 docker 组默认就在那里。然后我运行了 `sudo usermod -aG docker myuser` (使用 `$USER` 的代码更好)和 `sg docker -c "bash" ` 并且它起作用了。我不确定是否需要后一个命令,如果需要,有人可以发表评论。 (2认同)

小智 7

解决方案:\n这意味着你还没有\xe2\x80\x99t启动你的d​​ocker服务!

\n

首先,尝试使用以下命令启动它

\n

\xef\xbc\x91\xef\xbc\x8esudo systemctl start docker

\n

\xef\xbc\x92\xef\xbc\x8esudo service docker start

\n

\xef\xbc\x93\xef\xbc\x8esudo /etc/init.d/docker restart

\n

有关更多信息,请参阅此文档:此处

\n


edi*_*nit 6

我有同样的问题和错误消息。就我而言,我必须启动并启用 docker 服务。

systemctl start docker
systemctl enable docker
Run Code Online (Sandbox Code Playgroud)

  • `systemctl is-enabled docker` 应该显示 docker 是否被禁用 (5认同)