Ubuntu Docker Compose can';无法连接到Docker守护进程
我收到一条错误消息,说我无法连接到docker守护进程。我调查过其他有类似问题的人的答案,但没有帮助。我正在运行Ubuntu 15.10的版本。我会尽力提供我所有的信息Ubuntu Docker Compose can';无法连接到Docker守护进程,ubuntu,terminal,docker,docker-compose,Ubuntu,Terminal,Docker,Docker Compose,我收到一条错误消息,说我无法连接到docker守护进程。我调查过其他有类似问题的人的答案,但没有帮助。我正在运行Ubuntu 15.10的版本。我会尽力提供我所有的信息 root@# docker-compose -f docker-compose-deps.yml up -d ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? If it's at a non-s
root@# docker-compose -f docker-compose-deps.yml up -d
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.
Docker版本
root@# sudo docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:20:08 UTC 2015
OS/Arch: linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Docker编写版本
root@# docker-compose --version
docker-compose version 1.5.2, build 7240ff3
如果我尝试停止或启动服务,就会发生这种情况
root@# sudo service docker stop
stop: Unknown instance:
root@# sudo service docker start
docker start/running, process 5375
如果我运行ps aux|grep docker
root@# ps aux | grep docker
root 4233 0.0 0.0 13692 2204 pts/15 S+ 10:27 0:00 grep --color=auto docker
任何帮助都将不胜感激。如果您需要更多信息,请告诉我。从“ps aux | grep docker”的输出来看,docker守护进程似乎没有运行。试着用下面的方法看看是什么错了,为什么docker没有启动
$sudo docker-d-d我找到了这个,它似乎解决了我的问题
我更改了docker-compose-deps.yml文件的内容,如链接中所示。然后我运行了
docker compose-f docker-compose-deps.yml up-d
。然后我把它换了回去,因为某种原因它起了作用。我不必继续我提供的链接中的步骤,但前两个步骤为我解决了问题。调试15分钟后,我遇到了相同的错误。原来它只需要一个sudo
:)
查看以删除sudo前缀。我也遇到了同样的问题。在做了笔记并分析了一些调试结果之后,我终于解决了可能出现的相同错误。首先启动服务
service docker start
不要忘记将您的用户包括到docker组。当当前用户无法访问
Dockerfile
目录中的文件时,我遇到了此错误<因此,code>docker无法将完整上下文上载到守护程序,并导致“无法通过http连接到docker守护程序”+docker://localunixsocket消息。您的问题似乎是由旧的Docker错误造成的,Docker崩溃后,套接字文件没有重新创建。如果这是问题所在,则重命名套接字文件应允许重新创建它:
$ sudo service docker stop
$ sudo mv /var/lib/docker /var/lib/docker.bak
$ sudo service docker start
由于此错误已修复,大多数出现错误的人无法连接到Docker daemon
可能是因为他们不在Docker
组中,并且没有读取该文件的权限。运行sudocker…
可以解决这个问题,但这不是一个很好的解决方案
Docker可以作为具有适当组权限的非root用户运行(无sudo
)。报告中有细节。简短版本:
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
# Log out and log back in again to apply the groups
$ groups # docker should be in the list of groups for your user
$ docker run hello-world # Works without sudo
这允许
docker
组中的用户在不使用sudo
的情况下运行docker
和docker compose
命令。Docker本身运行一个根目录,允许一些攻击,因此您仍然需要小心您运行的容器。有关更多详细信息,请参阅。在我的情况下,您的docker服务可能会停止
启动docker服务的命令:
$sudo systemctl start docker
root@# ps aux | grep docker
root 4233 0.0 0.0 13692 2204 pts/15 S+ 10:27 0:00 grep --color=auto docker
用于验证其是否启动的命令:
$sudo docker run hello world
我遇到了这个问题,不想用sudo
把事情搞砸。调查时,我试图获得一些信息:
docker info
令人惊讶的是,我犯了以下错误:
尝试连接到处的Docker守护程序套接字时,权限被拒绝unix:///var/run/docker.sock: Get:dial unix/var/run/docker.sock:connect:权限被拒绝
由于某些原因,我没有足够的权限,以下命令解决了我的问题:
sudo chown $USER /var/run/docker.sock
瞧 我使用Ubuntu 16.04,在使用docker compose时也发现了这个问题。 我通过运行这个命令修复了它
$ sudo systemctl start docker
$ sudo docker-compose build
出现此错误的另一个原因是:对我来说,这是docker compose.yml中格式不正确的图像路径定义:
service:
image: ${CONTAINER_REGISTRY_BASE}/my-service
...
首先看起来还行,但我在env上设置了CONTAINER\u REGISTRY\u BASE=eu.gcr.io/my project/
。显然,映像路径中的/
导致了此错误
docker-compose: v.1.21.2
docker: 18.03.1-ce
您应该使用以下内容将用户添加到“docker”组:
sudo usermod-aG docker${USER}
在我的例子中,当我尝试
docker编写构建时,a会出现相同的错误
我的解决方案就是添加sudo
sudo docker-compose build
您删除默认机器的可能性很小吗?
但是,首先检查是否所有文件都存在(OSX,其他系统上类似)
另外,安装Docker应用程序,因为维护容器更容易:
brew cask reinstall docker
ans从finder启动Docker应用程序(等待服务完全启动)
然后,用以下方法检查安装:
docker-machine ls
如果列表中没有机器,请创建一台并启动它:
docker-machine create default
docker-machine start default
在此之后,build、compose和所有其他命令都应该正常工作。对我来说,修复方法是使用安装较新版本的docker compose
以前的版本(1.17)是从ubuntu的默认存储库安装的,但在安装了新版本后,我设法启动了容器。希望它能帮助别人。我想这是因为访问权,你只需要写就行了
sudo docker-compose-deps.yml up
解决此问题的一种方法是首先通过运行以下命令将用户添加到docker
组
sudo usermod -aG docker $USER
重要提示:请记住退出您的系统(不仅仅是您的终端)并重新登录,以使其生效 试试sudo
。好像是权限问题
sudo docker-compose -f docker-compose-deps.yml up -d
这对我来说很有效。就我而言,这是因为ubuntu的许可
列表项
通过检查权限
docker info
如果他们打印问题许可,
然后使用
sudo chmod -R 777 /var/run/docker.sock
在我的例子中,问题在于图像标签名称不正确-后端-以短的前导破折号开始:
失败:
version: '2.4'
services:
my-service:
container_name: my.backend
image: imagename:-backend
build:
context: .
错误消息:
ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
有效:使用我的后端
version: '2.4'
services:
my-service:
container_name: my.backend
image: imagename:my-backend
build:
context: .
他们需要一个更好的错误=/这个问题有13000名访客,你保存了