Compose: 错误:无法通过http + docker:// localunixsocket连接到Docker守护进程-它正在运行吗?

创建于 2016-11-24  ·  204评论  ·  资料来源: docker/compose

我知道还有另一个相同类型的问题,但是另一个问题已经解决,我尝试了所有提出的解决方案,但没有效果。

还是行不通:

matteo<strong i="8">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker -v
Docker version 1.12.3, build 6b644ec
matteo<strong i="9">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="10">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo service docker start
start: Job is already running: docker
matteo<strong i="11">@ubuntuDockerMB</strong>:~/wordpress-docker$ echo $DOCKER_HOST

matteo<strong i="12">@ubuntuDockerMB</strong>:~/wordpress-docker$ DOCKER_HOST=127.0.0.1
matteo<strong i="13">@ubuntuDockerMB</strong>:~/wordpress-docker$ echo $DOCKER_HOST
127.0.0.1
matteo<strong i="14">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="15">@ubuntuDockerMB</strong>:~/wordpress-docker$ unset DOCKER_HOST
matteo<strong i="16">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="17">@ubuntuDockerMB</strong>:~/wordpress-docker$ groups matteo
matteo : matteo adm cdrom sudo dip plugdev sambashare lpadmin docker

  • 我是docker组的一员

  • 我也在用sudo

  • 这个过程已经结束

  • 未设置DOCKER_HOST变量或127.0.0.1

  • 重新连接用户

  • 重新启动服务器

我认为我已经尝试了所有可能的配置,对吗?


眼镜:

  • 操作系统:Windows 10 Home上Virtualbox上的Ubuntu 14.04.04。

  • Docker版本1.12.3,内部版本6b644ec


谢谢!

kinquestion

最有用的评论

您是否尝试过没有sudo ? 您不需要它,它可能会使您的情况变得混乱。 另外,运行docker info会看到什么?

所有204条评论

您是否尝试过没有sudo ? 您不需要它,它可能会使您的情况变得混乱。 另外,运行docker info会看到什么?

如果需要首先启动守护程序,请尝试运行dockerdsudo dockerd 。 如果你开始dockerdsudo你可能要运行docker-compose upsudo也。 否则很好。

@ shin-您好! 我已经使用sudo和root( sudo su )完成了此操作。

matteo<strong i="7">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

这是作为root进行的操作

root<strong i="11">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker# docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
root<strong i="12">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker#

这是docker info

root<strong i="17">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker# docker info
An error occurred trying to connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: read unix @->/var/run/docker.sock: read: connection reset by peer

har j

dockerd不起作用,但是sudo service docker start可以正常工作

matteo<strong i="25">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo dockerd
INFO[0000] libcontainerd: new containerd process, pid: 4039
WARN[0000] containerd: low RLIMIT_NOFILE changing to max  current=1024 max=4096
INFO[0001] [graphdriver] using prior storage driver "aufs"
FATA[0001] Error starting daemon: layer does not exist

PS:

@ shin -&@

您需要导出变量以使其在子进程中可用:

$ export DOCKER_HOST=127.0.0.1

尽管这不能完全解决您的问题...

我遇到这个错误是因为我愚蠢地忽略了ubuntu的先决条件

谢谢@jamethy ,我所做的恰好就是我

matteo<strong i="7">@ubuntuDockerMB</strong>:~/wordpress-docker-tut$ docker-compose up -d
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose/cli/main.py", line 65, in main
  File "compose/cli/main.py", line 114, in perform_command
  File "compose/cli/command.py", line 36, in project_from_options
  File "compose/cli/command.py", line 111, in get_project
  File "compose/cli/command.py", line 83, in get_client
  File "compose/cli/docker_client.py", line 74, in docker_client
  File "site-packages/docker/client.py", line 59, in __init__
  File "site-packages/docker/utils/utils.py", line 438, in parse_host
docker.errors.DockerException: Bind address needs a port: 127.0.0.1
docker-compose returned -1

现在遇到相同的问题,也尝试在Docker下安装Wordpress。 尝试了一切,但仍然无法连接。 Docker守护程序未运行...我会再试一次

对我来说问题仍然存在:

Bind address needs a port: 127.0.0.1

但是这个数字应该由docker自己创建

我和原始海报有同样的问题,并且尝试了上面所有建议的操作。

似乎有时docker“死亡”并且没有运行,而在其他时候,它保持运行。 我在尝试运行docker info命令并收到有关docker not running的错误时注意到了这一点。 然后使用service docker start允许我运行info命令。 这就是我得到的:

Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 1.12.5
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 3
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: host bridge overlay null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-45-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 31.42 GiB
Name: ayn
ID: 7TGC:G5WQ:6IYF:XWMH:XF3N:VXU7:SLZB:IHRN:T4FL:D35I:5JUA:H4S5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
127.0.0.0/8

@ matteo-bombelli这个错误很明显,您需要指定一个端口。 改为执行export DOCKER_HOST=127.0.0.1:2375

@ matteo-bombelli
我遇到过同样的问题。
您需要重新启动docker。
$ service docker restart
我用这个解决了。

任何人都可以逐步解决该问题的解决方案?

你好我赞成这最后一条评论,我也有同样的问题。

我有同样的问题。

docker ps有效。

docker-compose build (第2版)有效!

docker-compose build (版本3)给出此错误:/

@furkanmustafa @ shashijais789 @lalitkumarj如果您使用所有信息创建了一个新期刊,那就更好了。 从网络到配置再到引擎的故障可能有很多原因,可能导致引擎崩溃/停止。 还请确保在引擎日志中包含debug -D标志。

同样的问题。 与版本2一起使用时,版本3配置出现此错误。

以下步骤为我解决了这个问题。

删除泊坞窗:
$ sudo apt-get remove docker docker-engine
重新安装
curl -sSL https://get.docker.com/ | sh

将用户添加到组:
sudo usermod -aG docker user

如果其中一个映像由于某种原因无法构建,而不一定与docker守护程序有关,则可能会显示此错误。 例如,我已经设法通过尝试使用Docker构建每个服务来调试它。

我的docker-compose.yml文件包含:

version: '2'

services:
  # Drupal server
  drupal:
    build:
      context: .
      dockerfile: "Dockerfile-drupal"
  mysql:
    ...

调用docker-compose build导致:

Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

因此,我尝试使用Docker分别构建每个文件:

docker build -f="Dockerfile-drupal" .

这给了我一个更有用的错误:

Error checking context: 'no permission to read from some/data/directory'

修复该错误并确保我可以构建Dockerfile-drupal,导致docker-compose build工作正常。

可能输出错误的代码可能更改为以下内容:

Couldn't build the services.

 * Make sure you can build your Docker images using "docker build ...".
 * Make sure the Docker daemon is running.
 * If the Docker daemon is at a non-standard location, specify the URL with the DOCKER_HOST environment variable. Currently using http+docker://localunixsocket.

需要全部:
1)像Kirill-Babkin所建议的那样,使用curl来apt-get移除并重新安装(然后重新启动soocker是安全的)
2)使用usermod -aG将用户添加到docker组中,注销并登录
3)取消定义DOCKER_HOST(如rkazak在https://forums.docker.com/t/docker-commands-require-sudo/12987/2所建议的那样),我之前使用> export DOCKER_HOST = 127.0.0.1:2375对其进行了设置杰米斯和申的建议
这是在RPi 3B上。 完成所有这些之后,docker现在可以工作了。 是否有可能将其清除,以便其他人不必经历这种痛苦的经历,因为这种docker旨在修复此类经历? 只是一个建议。

在我的情况下,LAN代理(在Internet选项中定义-我在Windows上)阻止docker-compose连接到VirtualBox Host-Only Network VM(使用docker引擎)-禁用代理已解决了一个问题。

在Ubuntu 16.04上,这对我有用:
sudo service docker start && docker-compose up -d

我不确定发生了什么,我重新启动了PC,它开始工作了!! :nerd_face:

@ ssi-anik计算机科学computer

我只是有同样的问题。 我发现由于某种原因我的用户没有被添加到Docker安全组中,反过来又不允许我在Docker的Unix套接字上获得权限并给我_ERROR:无法连接到http + docker:// localunixsocket上的Docker守护进程-它是否正在运行_ 。

将docker组添加到当前用户中,然后注销并再次登录,对我来说一切都已修复:
sudo usermod -aG docker $USER

对于我而言,这在某个特定的构建步骤中失败了,我尝试在与Dockerfile相同的目录中运行docker build . ,发现我尝试尝试COPY存在权限问题。

运行sudo chmod 755 -R .解决了我的问题。

正如@ChrisPappalardo
https://github.com/docker/compose/issues/1214
检查构建目录中的文件所有权权限。 由于容器构建过程是在当前用户的上下文中完成的,因此由root拥有的树中具有不可访问的目录可能会导致导致此消息的错误。

以我为例,@ alberto56的解决方案运行完美,这是安装到我的一项服务中的一个卷的权限问题。 不知道所有权最初是如何变化的,但是手动进行docker build -f myDockerfile .帮助我找到了问题。

当我执行ls -l该目录归999docker组所有,但很奇怪的一点是,即使对于我要构建的映像,它也没有是一项单独的服务。

我遇到此错误是因为在调试时像这样装载了一个卷,却忘了清理。
数量:
-./itsLog:/var/log/itsLog

当我尝试构建Dockerfile时,在尝试添加受限路径时,它肯定已经收到“权限被拒绝”。

错误的描述在某种程度上具有误导性,但在其他方面还是有意义的。

我只是将文件/var/run/docker.sock owner更改为当前用户,没关系。
似乎docker-compose没有访问/var/run/docker.sock的权限。

错误的描述有些误导

既然它已经太无用了,那为什么不真正致力于它并只打印“ No”呢? /秒

就我而言,我必须查看syslog才能看到Docker守护进程拒绝了构建规范,因为标签字符串中包含大写字母。

该错误消息是一条笼统的声明,可能应记录在案(而不是分散在不相关项目的Stack Overflow和github问题上)或加以扩展。

@ alberto56的评论对我有所帮助。 有同样的问题。 谢谢!
我以前“笨拙”的以前的容器已经创建了编译的Python文件。 *.pyc 。 我的用户无法访问这些内容。
从上面复制的问题和修复:

调用docker-compose build结果如下:
Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

直接呼叫docker:
docker build .

揭示了真正的原因:
Error checking context: 'no permission to read from '/home/user/dev/project/app/utils.pyc''.

文件权限为:
-rw-r----- 1 root root 11K Nov 29 16:32 utils.pyc
解决方法是删除这些文件:
sudo rm app/*.pyc

大家好,

升级到docker版本17.12后,我已经启动了docker服务,它解决了我的问题。

[]#个服务docker start
13重定向到/ bin / systemctl启动docker.service
#sudo docker-compose up -d

我们需要更新docker版本,然后compose就可以了。

问候,
普拉萨德RVS

服务docker启动
重定向到/ bin / systemctl启动docker.service
[ root @ kammu02-I9084 LDDS]
使用默认驱动程序创建网络“ ldds_default”
使用默认驱动程序创建卷“ ldds_couch-data”
拉沙发床(isl-dsdc.ca.com:5000/analytics/lddscouchdb:2.1.8c.109)...
2.1.8c.109:从analytics / lddscouchdb中提取
dd6405a9d644:拉出完成
10f659fc3a7e:拉出完成
8a0ce719aeb8:拉出完成
fc23f8fbeac2:拉出完成
5f02dd664e80:拉动完成
f38b89a75914:拉出完成
94add1a2ec1e:拉出完成
e7db1a0942ee:拉拔完成
87b0136db4b9:拉完整
be9ceeef7cb5:拉出完成
aed07b38ec55:拉完整
fc4632d89301:拉完整
6152a07afebb:拉完整
946862fd0151:拉出完成
43408CA5F730:拉完整
摘要:sha256:d3c13f08a4c9c3ed450325aef2dbe97abf0a55c13e9e2005109c05c713491fb3
状态:isl-dsdc.ca的更新的映像。 com:5000 / analytics / lddscouchdb :2.1.8c.109
拉动dds-web(isl-dsdc.ca.com:5000/analytics/lddscdb:2.1.8c.109)...
2.1.8c.109:从analytics / lddscdb中提取
dd6405a9d644:已经存在
10f659fc3a7e:已经存在
8a0ce719aeb8:已经存在
eebc892936a1:拉出完成
3c8dd6086ddb:拉完整
73c1dfebea61:拉出完成
9fb23fd0d390:拉动完成
f8943ba49c47:拉出完成
a89ff5b6e340:拉出完成
02615a9d0e05:拉出完成
e129088bf324:拉完整
bf0ba8d71b09:拉出完成
083300d85e61:拉出完成
5deacfd6cb23:拉出完成
220cda5539ae:拉完整
8cdee22c663b:拉完整
d76b24524469:拉完整
9c5ade36643f:拉完整
c7ca782f404c:拉出完成
6a7bbcfb0b95:拉出完成
摘要:sha256:e2cb43e6b22ab344d7fc17f38e49caa3e295ef0efdfa43bc77ce671e0f172168
创建ldds_couchdb_1 ...完成
创建ldds_couchdb_1 ...
创建ldds_ldds-web_1 ...完成

我确实遇到了以下错误,
“无法通过http + docker:// localunixsocket连接到Docker守护程序-它正在运行吗?”

检查是否为权限问题,执行“ sudo docker ps”时执行无此错误,而执行“ docker ps”时发生此错误,然后执行权限问题。

试试这个docker post安装步骤。 您可能需要将“用户”添加到docker组。
https://docs.docker.com/engine/installation/linux/linux-postinstall/

这对我有用。

大家好-这也发生在我的机器上。 奇怪的是,到目前为止,我还没有进行任何更改或升级,而且它刚刚开始发生。

@manjukori即使我在docker组中,这也会发生在我身上-但是在sudo下运行相同的命令是可行的! 因此,一方面,您似乎是对的,这是某种权限问题,但是,我docker组的成员! 太奇怪了...

好的,每个人都发现了问题! 就我而言,我使用的是docker-compose ,它会将root拥有的目录挂载到其中一个容器中。 由于某些原因阻止了docker-compose (运行docker build )启动。

删除该目录后,所有内容均会像以前一样工作(尽管我不确定为什么它实际上可以工作)。

您可能还需要检查类似的东西。

chmod 777它

您的用户需要在“ docker”组中才能运行没有sudo的docker-compose。 只需将此组添加到您的帐户,注销并重新登录即可。在Ubuntu和Mac OS上为我解决了此问题。

@jhnoor谢谢! 对我有用
sudo chmod 755 -R .

我想重申对另一个问题的最有用的评论之一,其中说docker-compose --verbose up[|build]将帮助您深入探讨问题。 就我而言,docker-compose的错误消息具有误导性-我只需要从docker 1.10(古代)更新到1.12。

详细程度表明:
docker.errors.APIError:400客户端错误:错误的请求(“客户端比服务器更新(客户端API版本:1.24,服务器API版本:1.22)”)

就我而言,仅一个命令就足以解决问题: sudo usermod -aG docker $USER (当$ USER是当前登录用户时)。 有了这个,我从$USER用户外壳程序中成功运行了docker-compose run ...而没有sudo 。 (感谢@ Kirill-Babkin:cake :)。

  • Ubuntu 16.04.3(AWS上的超级干净的新实例)
  • Docker 17.12.1-ce(通过apt进行安装,随后是为Ubuntu获取Docker CE

正确答案来自@manjukori和@yoloseem; 我唯一要强调的是使用env变量$ USER来概括指令sudo usermod -aG docker $USER (假设您以需要管理docker的用户身份连接到Shell)。 有关docker config的其他重要信息,请参阅https://docs.docker.com/install/linux/linux-postinstall/上方发布的链接

@ ramblinwreck35按照您的指示编辑了我的评论。 :+1:

对我来说,这是我的用户不是docker组成员。 解决...
sudo usermod -aG docker ${USER}
然后注销并再次登录,或者sudo su - ${USER}以在终端中接收更新的配置

systemctl restart docker
解决它

这是由于即使在将您的用户添加到Docker组中之后也获得了许可。 重新启动组或重新加载权限。

我用了须藤。 问题解决了。

我不完全确定我的问题是否相同,但是我将解决方案发布在这里,以防其他人遇到相同的问题并遇到此线程。

就我而言,我忘了在.dockerignore添加一些目录。 我想这对于docker deamon来说是太多数据了,因为它在排除了某些数据目录之后才起作用。

@harwood和我正在我们的存储库中研究此问题,发现这实际上是由于image设置的docker图像名称格式错误-我们有一个带有大写字母的图像。 我们还提供了build: ./ 。 当我们删除build: ./我们看到了一条新的错误消息: invalid reference format: repository name must be lowercase 。 希望这可以帮助任何跟踪此问题的人。

你好

通过以下步骤解决了我的问题:

  1. 停止Docker服务
  2. 使用以下命令将用于运行docker-compose命令的用户添加到docker组:usermod -aG docker NAME_OF_USER(CentOS 7)
  3. 启动Docker服务

您是否有像这样的数据库服务配置?

音量
-./db/data:/var/lib/mysql


When i input `docker-compose build` with db server ,I got this error. 
So, I input `sudo chown -R $USER:$USER /db/data` in order to got data permission.And I tried "docker-compose build" without the error.

docker-compose.yml

版本:“ 3”
服务:
D b:
建立:
。/D b
命令:mysqld --default-authentication-plugin = mysql_native_password
端口:
-“ 3306:3306”
数量:
-./db/data:/var/lib/mysql
env_file:
-mysql.env
特权:真
```

重新启动docker也对我有用。

我通过将所有者从root更改为/var/run/docker.sock来解决了该问题。 我不知道为什么apt软件包以root身份安装。

$ sudo show derp:derp /var/run/docker.sock

刚才遇到了类似的问题,花了我几个小时才弄清楚原因。

故事是这样的:我们使用Jenkins for CI,它使用docker-compose为我们的主要服务运行测试,因为它依赖于其他一些服务。 一位同事全力以赴,尽管代码和测试都还算不错,但詹金斯还是没有建立它。 问题似乎如下:

  • Jenkins为每个管道创建一个文件夹,并将其名称缩短到一定长度。 它组成了像"$GIT_BRANCH-$RANDOMISH_HASH"这样的文件夹名称,奇怪的是它从头开始就截断了字符串。
  • 失败的分支名称包含破折号( - ),Jenkins生成的结果目录名称以-
  • 然后Jenkins将在该文件夹中运行docker-compose ,默认情况下docker-compose使用目录名称作为前缀来命名容器。
  • 这意味着它尝试创建名称以破折号( - )开头的容器,并且该名称似乎是docker容器名称开头
  • 然后docker-compose失败,出现一个通用错误,并带有一个误导性的提示“无法连接到Docker守护程序-它正在运行吗?” 信息。

在我的情况下,解决方案是指定将使用自定义项目名称( -p )代替默认目录名称:

docker-compose -f docker-compose.ci.yml -p "$SANITIZED_GIT_BRANCH" build

@ alberto56固定的工作:

chown -R user:user .

另外,如果您不打算将任何内容运送到docker进行构建,请更新.dockerignore。

试试这个添加须藤多数民众赞成它

sudo docker-compose up

对我来说,解决方案是将我的用户添加到docker组,感谢您在使用docker时不必使用sudo
https://techoverflow.net/2017/03/01/solving-docker-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket/

在我的情况下,如果用户没有权限/var/run/docker.sock docker-compose尝试连接到http+docker://localhost
sudo usermod -a -G docker $USER可以解决此问题。

此时https://github.com/docker/compose/issues/4181#issuecomment -317120015
重新启动PC将解决此问题

CentOS
我不得不说,我通过断开连接并重新连接到服务器来解决...

tl; dr停止不必要的评论
伙计们我认为重启不应该是GitHub中任何问题的一部分。 请。 它通过无用的通知分散了我们的注意力。 请记住,此处评论旨在为问题本身增加价值。 重新启动并不能解决问题,因为再次发生。 尤其是在某些时候,套接字被卡住了,所以一旦有人发现该线程前面未注释的其他任何东西都会增加价值,那么请做注释,否则,请避免创建通知:)-很抱歉。

sudo chown $USER:docker /var/run/docker.sock对我有用。

sudo which docker-compose up在Ubuntu 16。

看起来有几个不同的访问问题。 我在新的Fedora 28上遇到了这个问题,并通过禁用selinux解决了它。

我的打字解决了
须藤码头工人
//然后
须藤码头工人组成-d

"/var/run/docker.sock:/var/run/docker.sock"设置一个音量,然后可以

重新启动服务器后,它起作用了:)

我的原因仅仅是因为docker-compose不在PATH@pelican的答案解决了它

只需按照本问题中提到的说明进行操作,然后重新启动计算机即可。

只是这样做对我有用:

sudo apt-get purge golang-docker-credential-helpers

只是在遇到问题的情况下,后来遇到了几行外壳程序(没有任何软件包安装/升级),它会抛出此错误。 刚刚尝试了其他项目,它的构建使我感到Docker缓存或该映像的相关内部结构发生了问题。Docker映像修剪,重新启动docker服务或OS无效。 正确安装了Docker(无需sudoing)。

编辑:系统修剪并删除此特定容器解决了该问题

对我来说,这是我的用户不是docker组成员。 解决...
sudo usermod -aG docker ${USER}
然后注销并再次登录,或者sudo su - ${USER}以在终端中接收更新的配置

那是正确的解决方案

sudo docker-compose run .......为我工作:)

我遇到了同样的问题,并修复了重新启动docker的问题,非常感谢

答案在安装后步骤部分的Docker文档中:
https://docs.docker.com/install/linux/linux-postinstall/

如文档中所述:

Docker守护程序绑定到Unix套接字而不是TCP端口。 默认情况下,Unix套接字归root用户所有,其他用户只能使用sudo访问它

这就是为什么它使用sudo执行命令的原因。

如果您希望自定义用户连接到docker(如我的情况),则应使用以下命令将其添加到docker组:

sudo usermod -aG docker $USER

实际上,Docker套接字的所有权为:
srw-rw---- 1 root docker 0 Oct 3 11:31 /var/run/docker.sock

之后,根据doc上的报告,如果要在虚拟机上进行测试,则应注销并重新登录或重新启动。

我已经测试了在Parallel上运行的Ubuntu 14.04虚拟机,不需要重启它。 我只需要再次登录即可解决该问题。

注意
查看文档中指示的警告,因为“ docker”组授予与root用户等效的特权。 因此,根据您的情况,将用户添加到该组可能是一个安全问题。

以root身份运行命令

export DOCKER_HOST = 127.0.0.1

然后将自己置于docker-compose.yml的文件夹中并执行以下命令:
su docker-compose up

如前面的评论中所述,尝试单独构建每个服务会提供更多有用的错误消息。
我遇到此错误是因为我的映像名称在docker-compose.yml中大写。
同时更改服务名称和服务映像属性可以解决此问题。

只需重新启动docker,它就会完美运行。
运行: service docker restart ,然后运行所需的任何泊坞窗命令。

您需要将您的用户添加到docker组中,以避免出现“ sudo docker ...”
sudo usermod -aG码头用户名

您的用户在docker用户组中吗?

sudo usermod -aG docker ${USER}

检查本文: https ://medium.com/@ibrahimgunduz34/if -you-faced-an-issue-like-couldnt-connect-to-docker-daemon-at-http-docker-localunixsocket-is-27b35f17d09d

这对我也不起作用。 我刚刚在命令前添加了sudo,它开始工作了。

sudo dockerd

给我

Segmentation fault

所以我的问题是docker守护程序没有运行,但是我不知道该怎么办

我发现很有用

我将docker-compose1.16.1升级到1.23.1 ,解决了!

我不确定发生了什么,我重新启动了PC,它开始工作了!!

我有同样的问题,对我来说,重新启动的原因是,在安装后,我的用户被添加到了docker组中,但是该组更改仅通过重新登录才生效。

由于我在docker-compose.yml文件中犯了一个错误,我今天遇到了这个问题。

我不小心两次包含了volumes:键声明,这导致无法将docker.sock映射到内部容器中。 错误看起来像这样:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    volumes:
      - datafiles:/datafiles

哪个应该说:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - datafiles:/datafiles

我发现,当您这样声明两个卷部分时,第一个被忽略。 因此,该容器当然无法执行docker命令。

我遇到了同样的问题,但是我能够以root身份运行docker或应用执行权限来解决它。

我在执行不带Sudo的Docker命令部分中使用了此链接https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04

一个稍微有些题外的问题,一段时间以来,我一直在寻找有关http+docker://模式定义的文档或参考。 这里有人有URL或对此架构的引用吗? 谢谢!

我遇到了这个问题,但意识到docker-compose错误消息非常无助且具有误导性。 为了找到实际原因,我只是手动为docker-compose.yml中的每个服务设置了docker build <service> ,直到找到一个拒绝构建的服务。 就我而言,这是服务目录中的__pycache__权限问题。

我遇到了同样的问题,所有解决方案都无济于事。
我尝试过Rosso84的想法。
sudo服务docker stop
须藤码头工人
现在我可以跑步
码头工人组成
成功。
有点奇怪继续-
须藤码头工人组成
说找不到命令。

它为我工作:
sudo groupadd泊坞窗
sudo gpasswd -a $ USER泊坞窗

执行newgrp泊坞窗或注销/登录以激活对组的更改。
newgrp码头工人

使用未设置的生成arg时出现了这个问题,然后在我的FROM图像的标记中使用了该问题。 修复:将构建arg设置为空字符串以外的其他内容。

重新启动服务器为我解决了

如果您不是root用户,则尝试将用户添加到docker权限

sudo usermod -a -G docker theUser

我也通过重新启动Ubuntu来解决它。

嗨,

在命令前用sudo解决的问题;),

谢谢,
莫阿兹

这是一个权限问题。

- sudo chown $USER:docker /var/run/docker.sock 这在ubuntu 18设置中对我有用。

我不确定发生了什么,我重新启动了PC,它开始工作了!!

随便你,先生

只需在docker-compose命令之前输入sudo

这对我有用
sudo chown $USER:docker /var/run/docker.sock

usermod -a -G docker用户
然后注销并再次登录USER。

每当docker-compose.yml中的变量在.env中不存在时,我都会遇到相同的错误。

这种情况下很奇怪的错误,但是-无论如何。 :)

只需在docker-compose命令之前输入sudo

随便你,先生!
天哪,但对我来说很好,干得好!

我只需要做:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose

而且有效!

我安装了docker-compose并同时通过以下步骤解决了该问题:
第1步:
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose- uname -s - uname -m -o / usr / local / bin /码头工人组成

第2步:
须藤chmod + x / usr / local / bin / docker-compose

步骤3:
docker-compose --version

步骤4:
导出DOCKER_HOST = 127.0.0.1:2375

步骤5:
usermod -a -G泊坞窗$ USER

步骤6:
重新启动电脑或运行命令
关掉

这对我有用:

sudo usermod -aG泊坞窗$(whoami)

登出

登录

检查以确保您属于“ docker”组。

- sudo chown $USER:docker /var/run/docker.sock这在ubuntu 18设置中对我有用。

谢谢!

你好,
收到相同的错误消息:

错误:无法通过http + docker:// localhost连接到Docker守护进程-它正在运行吗?
如果它位于非标准位置,请使用DOCKER_HOST环境变量指定URL。

但是此消息具有误导性,因为我的docker deamon在连接方面没有任何问题。
原因是我在Yaml中犯了一个愚蠢的错误(以前我不知道)。 我不小心在图片名称中有一个大写字母。 这导致无法形成服务的事实,因为只允许使用小写字母作为名称。
当我尝试使用名称分别构建Dockerfile时,我注意到了该错误。
如果docker-compose可以转发在构建问题中发生的错误,那将很方便。 因为,正如@ shin-还说的那样,由于许多原因,此错误现在仍可能发生。 即使自@ shin-编写此代码以来已有一段时间,该问题似乎仍然存在。 也许会有所帮助。

只是在这里发布我的问题,因为每个人都在认真考虑与docker的实际连接问题,我想表明,并不一定总是这样。

$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

$ sudo service docker start
$ sudo service docker status

你好,

我遇到了同样的问题。 但是重新启动虚拟机后,问题得到解决。

索拉布

该命令为我解决了:

sudo usermod -aG码头用户

命令:

sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose
须藤码头工人组成-d

如果您刚刚安装了docker并被授予用户权限,则docker组尝试注销该用户并再次登录。

sudo服务docker start && docker-compose up -d

请尝试使用上面的命令。 问题已为我解决

上面列出的解决方案都没有为我修复它。 还有其他想法吗?

错误:无法通过http + docker:// localhost连接到Docker守护进程-它正在运行吗?

如果它位于非标准位置,请使用DOCKER_HOST环境变量指定URL。

解决问题:

sudo chown $USER:docker /var/run/docker.sock

👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻
👉🏽解决方案👈
👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿

如果您尚未从此脚步尝试任何操作,请运行以下两个命令,它将解决此特定问题:
sudo usermod -a -G docker $USER #将当前用户添加到docker
newgrp docker #激活docker组的新权限

sudo usermod -a -G docker $ USER#将当前用户添加到docker组
newgrp docker#激活docker组的新权限

应该是newgrp -l docker 。 使用此工具时,应注意newgrp启动了一个新的shell,因此将重置环境,就像使用-l重新登录一样。

首先,我们需要通过执行以下命令以执行权限重新挂载tmp

  1. 须藤挂载/ tmp -o重新挂载,执行
    然后通过
  2. 根用户中的“服务docker start”或“ sudo服务docker start”
    然后
  3. “ docker-compose up”或“ docker-compose start”对我有用

须藤码头工人组成-d
错误:无法通过http + docker:// localhost连接到Docker守护进程-它正在运行吗?

如果它位于非标准位置,请使用DOCKER_HOST环境变量指定URL。
加上sudo也是报同样的错误

groups root
root : root docker
root在docker组下

解决了这个问题:

  1. sudo usermod -aG docker $USER
  2. 注销并重新登录,以便重新评估您的组成员身份。
  3. 确认您可以在不使用sudo的情况下运行docker命令: docker info

默认的DOCKER_HOST是unix:///var/run/docker.sock。 如果此文件不存在或您当前的用户无权访问该文件,则它会尝试连接到http + docker:// localhost
尝试:
sudo chown /var/run/docker.sock
然后再次尝试运行docker-compose up
为我工作。

您是否尝试过没有sudo ? 您不需要它,它可能会使您的情况变得混乱。 另外,运行docker info会看到什么?
谢谢! 有用!

但是请Docker,添加正确的警告!

从poruction机复制卷时,我收到此消息,最终在/var/lib/docker/volumes内对metadata.db进行强行压缩,然后崩溃。 修复是如此之简单

docker system prune --volumes -f && rm /var/lib/docker/volumes/metadata.db && docker-compose up -d

当您以sudo方式运行docker命令而没有docker-compose命令时,通常会发生这种情况。
您需要做的是将docker用户添加到sudo组。 (即usermod -aG docker $ USER)
然后,您可以不使用sudo运行两个命令(docker和docker-compose)。

我有完全一样的错误。 我删除了容器(id),然后再次启动了docker。 那为我解决了问题。 它不会删除任何已上传的数据。

进入您的cvat目录并在终端中运行以下命令:

  • sudo docker ps(显示有关正在运行的docker的信息)
  • 码头工人停止“在这里您的容器的ID”(例如我的是e6339eae0675)
  • sudo docker rm“这是您的容器的ID”
  • 须藤码头工人组成-d

我有同样的问题,_sudo docker-compose up_为我工作。

对我来说,解决方案是停止我正在使用的openvpn

我不确定发生了什么,我重新启动了PC,它开始工作了!!

这可行。

以下步骤为我解决了这个问题。

删除泊坞窗:
$ sudo apt-get remove docker docker-engine
重新安装
curl -sSL https://get.docker.com/ | sh

将用户添加到组:
sudo usermod -aG docker user

请注意,您需要使用exit shell并再次登录,以便粘贴usermod命令。

我只是再次遇到了和以前一样的问题,最后发现了Sime Light。
它与docker-compose有关,该消息隐藏了真正的问题,与之相关。
我只是尝试使用docker build构建其中一张映像。 然后显示某些试图包含在缓存中的文件没有读取和构建失败的权限。
一旦删除了已发行的文件,它就可以再次正常工作。
在我的情况下,安装当前目录是问题,因为主机上具有root用户的测试生成目录
所以下一次构建失败是因为它无法读取并且开始失败并且没有来自docker-compose构建的明确消息。
需要检查用户运行测试以避免以后出现问题,但是希望这可以帮助其他人找到真正的问题。

问候

将普通用户添加到Docker组

# usermod -a -G docker user
# exit
$ exec $SHELL
$ docker-compose ps

我通过取消设置CONTAINER_REGISTRY_BASE变量来解决此问题

$ sudo usermod -aG泊坞窗$ USER

我发现这是一个丢失的环境变量,它破坏了docker-compose.yml中的image:设置

¯_(ツ)_ /¯

以下步骤为我解决了这个问题。

删除泊坞窗:
$ sudo apt-get remove docker docker-engine
重新安装
curl -sSL https://get.docker.com/ | sh

将用户添加到组:
sudo usermod -aG docker user

谢谢。 卸载然后重新安装和更改用户权限,然后注销并重新登录对我来说解决了。

上面列出的解决方案都没有为我修复它。 还有其他想法吗?
错误:无法通过http + docker:// localhost连接到Docker守护进程-它正在运行吗?
如果它位于非标准位置,请使用DOCKER_HOST环境变量指定URL。

解决问题:

sudo chown $USER:docker /var/run/docker.sock

这为我解决了。

除了象征性地链接到docker-compose之外,我已经做了所有事情。 以下命令解决了我的问题

  1. 将用户添加到Docker组(如果尚未添加)
    sudo usermod -aG docker $USER
  2. 使用以下命令创建到/ usr / bin的符号链接
    $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  3. 重新启动Docker服务
    $ sudo service docker restart

就我而言,以上方法均无效

事实证明,在我的撰写文件中,我有一个camelCase映像名称( eg imageName ),这导致了Couldn't connect to Docker daemon at http+docker://localunixsocket 。 将其更改为dash-case可解决问题(非常奇怪)。
Docker服务运行良好,docker ps和信息也未报告任何问题,只是启动了撰写文件才是问题。

Ubuntu 18.04
docker 19.03.6
docker-compose 1.17.1 (compose file version 3)

须藤码头工人组成-d

刚刚再次遇到此问题重新启动Ubuntu

sudo usermod -aG码头用户

@ Kirill-Babkin的这个为我解决了。 我有新创建的用户不在docker组中。 谢谢。

在我的情况下,我的docker-compose.yml缺少image部分的env var定义

prod-image-generation:
    image: my-image:${BUILD_NUMBER}

我输了大约30分钟。 请为此提出一个有意义的错误

解决方案为var设置了一个值

只是空出口对我有用。

export DOCKER_HOST=

在Ubuntu 18中重新安装Docker。假设您的用户已经在docker组中,只需安装Docker服务,使其自动启动sudo systemctl enable docker然后重新启动并确认sudo init 6

有同样的问题。
通过编写“ docker-compose build”在我的系统上解决

我只是有同样的问题。 我发现由于某种原因我的用户没有被添加到Docker安全组中,反过来又不允许我在Docker的Unix套接字上获得权限并给我_ERROR:无法连接到http + docker:// localunixsocket上的Docker守护进程-它是否正在运行_ 。

将docker组添加到当前用户中,然后注销并再次登录,对我来说一切都已修复:
sudo usermod -aG docker $USER

然后,重新启动机器,并运行docker-compose up --build 👍

节目

sudo usermod -aG docker $USER

然后,重新启动机器,并运行docker-compose up --build +1

您无需重新启动,只需简单的重新登录即可。 它为我做到了。

我不确定发生了什么,我重新启动了PC,它开始工作了!! 🤓

是工作。 不知道为什么吗? 哈哈

在Ubuntu 18中重新安装Docker。假设您的用户已经在docker组中,只需安装Docker服务,使其自动启动sudo systemctl enable docker然后重新启动并确认sudo init 6

我正在使用Manjaro,此解决方案对我有用

谢谢@mikemix

在运行dockered之后,基于以下错误,我尝试了很多步骤。

can't initialize iptables table nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. (exit status 3)

但是以管理员身份启动Terminal可以工作。
sudo service docker start
切记:Windows 10上的Terminal / Ubuntu应该以管理员身份启动

在Ubuntu 20.04上,我需要运行

sudo chmod 777 /var/run/docker.sock

它立即开始工作。


Edit️编辑

小心上面的命令

这样,该计算机的任何用户都可以完全访问通常由root拥有的文件。 这样可能会在系统中造成严重的安全漏洞。
@Taranchul

sudo chmod 777 /var/run/docker.sock

这样,该计算机的_any_用户就可以完全访问通常由root拥有的文件。 这样可能会在系统中造成严重的安全漏洞。 有关类似的警告,请参阅https://stackoverflow.com/questions/47854463/docker-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socke

如此处和上面的链接所述, sudo usermod -aG docker $USER (或有问题的用户名而不是$ USER)应该在不破坏系统安全措施的情况下达到目的。

@Taranchul你完全正确! 我一直使用sudo usermod -aG docker $USER 。 但是不幸的是, sudo usermod -aG docker $USER似乎在Ubuntu 20.04上不再起作用。

任何想法可能出什么问题吗?

las,我没有。 您是否使用该用户(对我有用)重新登录或重新启动计算机? 我想您是这样做的,但是最好确定。

万一您或其他任何人想要恢复docker.sock的原始权限,它们至少在我的Ubuntu Server 18.04上为660。

@Taranchul是的,我尝试重新登录并重新启动。 在笔记本电脑和工作站上都​​没有工作。

也许是20.04期,因为它的最终版本是昨天发布的。 我通常在夏天的某个时候等待所有LTS发布的第一张快照,希望那时候可以解决大多数初期问题。

您可以在较旧的发行版上对其进行测试吗?

@Taranchul 20.04似乎是个问题。 在19.04上工作正常

这是一条有用的信息👍尽管目前对您没有多大帮助。 那么,在此问题上20.04可能变得更成熟之前,是否可以选择使用18.04?

一个远景:您是否检查过用户是否实际上已添加到docker组?

@Taranchul我的意思是我可以使用18.04,但是由于我已经将所有内容迁移到20.04,所以我可能不会这样做。

在修复之前,使用sudo运行所有docker命令是有效选项吗?

las,我对Docker知之甚少,所以我无法回答这个问题。

我发现这些在20.04上安装Docker的说明做了一些不同: https

他们在添加用户之前添加了docker组。 也许在20.04上是必需的吗? (我还没有,所以我自己不能测试。)

sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker # or relogin to make the new group known to the system

@Taranchul您知道这很奇怪。...我运行sudo chmod 660 /var/run/docker.sock重置权限,重新启动后它仍在工作。

我可以认为问题已解决,还是可能存在安全风险?
昨天安装所有内容时,也许我已经忘记了一步……而Ubuntu 20.04实际上不是问题吗?

根据askubuntu.com上的docker.sock的所有权是root:root 。 仅在创建docker组,将用户添加到其中并重新启动docker服务器之后,它才更改为root:docker 。 因此,检查组是否存在(编辑:如果存在,则检查docker.sock的所有权)似乎是一个好主意。 还可以重新启动您的docker实例。

记住那里评分较低的答案之一,一个关于ACL,以及如何通过命令setfacl启用对docker.socks的访问。

最后,同样重要的是,还有关于后者以及将用户添加到docker组的警告,因为它为该用户提供了重要的访问权限。 😎但是我仍然认为这些方法最好是chmod文件的权限。

在写完上面的文章之后,正确地读完您的最后一条评论,我会说高兴并观察整个过程。 尝试几种解决方案时,很难说出您是否错过了某些东西并以某种方式修复了它。

@Taranchul太好了。 重新启动Docker后仍然可以使用。 所以我想那只是我的错。 谢谢你的帮助!

@flulu我很高兴,也感谢您接受我的第一个警告,

在Windows 10上,已通过升级到WSL2并将我的Ubuntu Distro备份到WSL2来解决。
https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-install

重新启动计算机后,此问题已解决。 :微笑:

这解决了我的问题。

sudo usermod -aG docker myuser

非常感谢@ Kirill-Babkin。

解决者:

sudo chmod 666 /var/run/docker.sock
sudo chmod 666 /var/run/docker.sock

如前所述,这可能会在您的系统中打开一个安全漏洞。 在此之前,您是否尝试过usermod解决方案? 它也可能引起安全问题,因为它使该用户可以完全通过docker访问,但是与授予_every_用户访问root拥有的文件相比,这似乎没有那么邪恶。

@ matteo-bombelli
我遇到过同样的问题。
您需要重新启动docker。
$ service docker restart
我用这个解决了。

这就是解决方案,有效了,谢谢!

我在Ubuntu 20.0.4上收到此错误

我安装了apt从apt来源获取。 PPA中有较新的版本吗?

我做了
newgrp docker
而且有效

我正在制作Lightsail。 重新启动映像将其修复。

也许只是尝试将Linux用户添加到该组:docker,然后重新登录。

在Ubuntu 20上,docker在snap下运行,如通过'systemctl status snap.docker.dockerd.service'所看到的

它确实尝试从将/var/run/docker.sock组设置为'docker'开始,但是默认情况下,即使您在安装中选择了Docker snap,该组在Ubuntu 20中也不存在。

要解决此问题,请创建一个组,将您的用户添加到该组中,然后重新启动

sudo groupadd泊坞窗
sudo usermod -G码头$ USER
须藤重启

您不能只注销然后再登录,据我所知,您无法重新启动snap.docker.dockerd或自身快照并更改权限。 我不知道如何在不重新启动的情况下诱使它执行正确的操作,所以如果您知道,请通知我。

我在20.04上,遇到了同样的问题,可以执行sudo docker info但不能作为我的普通用户。 我以前曾经在docker组中,仍然可以浏览我的wordpress网站127.0.0.1。 我必须运行newgrp docker进行修复。 很奇怪,因为自从两天前设置docker以来,我所做的就是锁定此工作站。 也许更新破坏了某些东西?

newgrp docker为我工作

手动设置DOCKER_HOST对我有用

  1. 找出袜子文件的路径:(使用sudo service docker statusps -aef | grep docker
  2. 出口DOCKER_HOST=unix://<path to sock file>

在我的情况下,sock文件位于/run/containerd/containerd.sock
所以我不得不运行export DOCKER_HOST=unix:///run/containerd/containerd.sock

就我而言-重新启动群集后,问题已解决。

在Ubuntu 20上,docker在snap下运行,如通过'systemctl status snap.docker.dockerd.service'所看到的

它确实尝试从将/var/run/docker.sock组设置为'docker'开始,但是默认情况下,即使您在安装中选择了Docker snap,该组在Ubuntu 20中也不存在。

要解决此问题,请创建一个组,将您的用户添加到该组中,然后重新启动

sudo groupadd泊坞窗
sudo usermod -G码头$ USER
须藤重启

您不能只注销然后再登录,据我所知,您无法重新启动snap.docker.dockerd或自身快照并更改权限。 我不知道如何在不重新启动的情况下诱使它执行正确的操作,所以如果您知道,请通知我。

我相信你的意思是sudo usermod -aG docker $ USER。 在不使用-a的情况下运行将导致“如果该用户当前是未列出的组的成员,则该用户将从该组中删除。”

您不能只注销然后再登录,据我所知,您无法重新启动snap.docker.dockerd或自身快照并更改权限。 我不知道如何在不重新启动的情况下诱使它执行正确的操作,所以如果您知道,请通知我。

重新登录应足以使该用户的新组处于活动状态。

这对我也很重要。 由于某种原因,我需要与nordvpn客户端断开连接。

sudo docker-compose up -d可以使用!!!

您是否尝试过没有sudo ? 您不需要它,它可能会使您的情况变得混乱。 另外,运行docker info会看到什么?

乌拉他妈的天才。 你知道的 ? 非常感谢兄弟。 你从地狱救了我。

不知道确切的原因,但是在我的情况下,我有一个未检出的子模块。 运行git submodule update --init ,然后重新运行docker-compose build ,为我解决了此问题

我不确定发生了什么,我重新启动了PC,它开始工作了!!

同样在这里。 😃

我只是有同样的问题。 我发现由于某种原因我的用户没有被添加到Docker安全组中,反过来又不允许我在Docker的Unix套接字上获得权限并给我_ERROR:无法连接到http + docker:// localunixsocket上的Docker守护进程-它是否正在运行_ 。

将docker组添加到当前用户中,然后注销并再次登录,对我来说一切都已修复:
sudo usermod -aG docker $USER

另外,不要忘记运行newgrp docker来访问当前shell中的该组。 编号https://stackoverflow.com/a/48569858/2040522

我只是有同样的问题。 我发现由于某种原因我的用户没有被添加到Docker安全组中,反过来又不允许我在Docker的Unix套接字上获得权限并给我_ERROR:无法连接到http + docker:// localunixsocket上的Docker守护进程-它是否正在运行_ 。

将docker组添加到当前用户中,然后注销并再次登录,对我来说一切都已修复:
sudo usermod -aG docker $USER

这很完美。 您必须重新登录才能查看结果。

sudo usermod -aG docker $USER

这很完美。 您必须重新登录才能查看结果。

或者, newgrp docker应该执行此操作而无需重新登录。

sudo chmod 666 /var/run/docker.sock

如前所述,这可能会在您的系统中打开一个安全漏洞。 在此之前,您是否尝试过usermod解决方案? 它也可能引起安全问题,因为它使该用户可以完全通过docker访问,但是与授予_every_用户访问root拥有的文件相比,这似乎没有那么邪恶。

您说的没错,但这对于devops非常重要,我只是一名开发人员,我使用此命令对其进行了修复,
特别感谢@ shqear93

这很痛苦,我无法确定该问题已在三年前关闭,而Docker没有做出有意义的回应。 这个github问题不应该在您的功能集中。 解决这个问题的计划是什么? 不要对那些不了解组,用户和会话的工作方式的用户,或其他以其工作方式工作的软件的用户。 _您_选择了这种复杂的处理方式。

我必须重新启动计算机,而不是注销/登录才能使sudo usermod -aG docker my_user生效。 其他人正在发生这种情况的一些证据: https

我只是有同样的问题。 我发现由于某种原因我的用户没有被添加到Docker安全组中,反过来又不允许我在Docker的Unix套接字上获得权限并给我_ERROR:无法连接到http + docker:// localunixsocket上的Docker守护进程-它是否正在运行_ 。
将docker组添加到当前用户中,然后注销并再次登录,对我来说一切都已修复:
sudo usermod -aG docker $USER

另外,不要忘记运行newgrp docker来访问当前shell中的该组。 编号https://stackoverflow.com/a/48569858/2040522

为我完美地工作。 谢谢!

在Ubuntu 16.04上,这对我有用:
sudo service docker start && docker-compose up -d

这对我有用!

我只是有同样的问题。 我发现由于某种原因我的用户没有被添加到Docker安全组中,反过来又不允许我在Docker的Unix套接字上获得权限并给我_ERROR:无法连接到http + docker:// localunixsocket上的Docker守护进程-它是否正在运行_ 。
将docker组添加到当前用户中,然后注销并再次登录,对我来说一切都已修复:
sudo usermod -aG docker $USER

另外,不要忘记运行newgrp docker来访问当前shell中的该组。 编号https://stackoverflow.com/a/48569858/2040522

这解决了我的问题,谢谢!!!

我不知道为什么,但是为我解决的是从我的docker-compose .env文件中删除以下行:

DOCKER_HOST=tcp://localhost:2375

解决者:

sudo chmod 666 /var/run/docker.sock

谢谢。 在Ubuntu 20.0.4 LTS中解决

我只是尝试使用权限,然后做了:

sudo docker-compose构建

比赛开始了。
从本质上讲,这是一个权限问题,如果已运行docker服务,分配了组,设置了套接字权限,但仍然无法正常工作。 只需使用sudo即可。 为我工作,要做得更好。

ubuntu 20.04有什么解决方案吗?

ubuntu 20.04有什么解决方案吗?

您是否尝试过以前发布的解决方案? (https://github.com/docker/compose/issues/4181#issuecomment-629748049)

简而言之(添加了以后的建议):

sudo groupadd泊坞窗
sudo usermod -aG泊坞窗$ USER
newgrp码头工人

如果“ newgrp docker”不足够,则可能需要重新启动(对此有冲突的评论)。

此页面是否有帮助?
0 / 5 - 0 等级