我在ubuntu 16.04上收到错误
“错误:无法连接到Docker守护程序 - 您可能需要运行
docker- machine start default
。 “
当我运行以下命令
时sudo docker-compose up
任何人都可以回答吗?
答案 0 :(得分:11)
假设使用以下shell命令设置环境变量:
eval "$(docker-machine env default)"
然后您可以通过运行以下shell命令找到确切的错误:
docker-compose --verbose up -d
很多次代理问题,或者如果您使用charles代理运行它,它可以阻止连接等。如果是代理问题,您可以将其添加到您的个人资料中:
export no_proxy=192.168.99.100
答案 1 :(得分:6)
启动Docker守护程序
使用以下命令:
sudo systemctl start docker
或在较旧的发行版上,您可能需要使用:
sudo service docker start
答案 2 :(得分:3)
之后
#sudo snap remove docker //only if required
sudo snap install docker
以下命令对我有用
docker-compose --verbose up -d
如果docker服务不活跃,请执行以下任一操作(优先考虑第一个)
1. sudo snap start docker
2. sudo systemctl start docker
3 .sudo service docker start
答案 3 :(得分:2)
10分钟前我也遇到了同样的错误,并通过以下方法解决了该问题:
sudo snap remove docker
完成后:
sudo snap install docker
问题解决了。
答案 4 :(得分:1)
您应该在docker组中添加您的用户。 然后,您可以使用没有'sudo'的docker命令。
$ sudo usermod -aG docker ${USER}
$ sudo service docker restart
接下来,您必须在操作系统中注销。 最后,当您登录时,可以使用不带“sudo”的docker命令。
答案 5 :(得分:1)
我也遇到过这种情况
asif@ck ~/u/m/moberry_pizza_order (main)> docker-compose -f local.yml build
ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
asif@ck ~/u/m/moberry_pizza_order (main) [1]> docker-machine start default
Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.
asif@ck ~/u/m/moberry_pizza_order (main) [1]> docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
asif@ck ~/u/m/moberry_pizza_order (main)> docker-machine create -d dev;
Driver "dev" not found. Do you have the plugin binary "docker-machine-driver-dev" accessible in your PATH?
asif@ck ~/u/m/moberry_pizza_order (main) [1]> docker-compose -f local.yml up
ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
然后我尝试跟随,
$ sudo apt update && sudo apt dist-upgrade
$ docker-compose --version
docker-compose version 1.25.5, build unknown
$ sudo usermod -aG docker $USER
$ newgrp docker
$ docker run hello-world
无法在本地找到图像 'hello-world:latest' 最新:从图书馆/hello-world 中提取 b8dfde127a29:拉取完成 摘要:sha256:f2266cbfc127c960fd30e76b7c792dc23b588c0db76233517e1891a4e357d519 状态:为 hello-world:latest 下载了更新的图像
来自 Docker 的您好! 此消息表明您的安装工作正常。
为了生成此消息,Docker 采取了以下步骤:
要尝试更雄心勃勃的事情,您可以使用以下命令运行 Ubuntu 容器:
$ docker run -it ubuntu bash
做完这些我的命令开始工作
$docker-compose -f local.yml up
使用默认驱动创建网络“moberry_pizza_order_default” 使用默认驱动程序创建卷“moberry_pizza_order_local_postgres_data” 使用默认驱动程序创建卷“moberry_pizza_order_local_postgres_data_backups” 构建 postgres 第 1/4 步:来自 postgres:13.2 13.2: 从库/postgres 中拉取
所以重启守护进程是这里的主要事情。你可以通过几种方式做到这一点。
答案 6 :(得分:0)
有时,如果您之前构建了堆栈,则会出现此错误。 给出错误的原因可能是文件权限。 如果在构建过程中,docker生成了新文件或编辑了一些文件,则将有一些root拥有的文件。
因此,如果原因是出于许可,请让您的用户成为所有应用程序文件的所有者。
$ sudo chown -R ${USER} .
答案 7 :(得分:0)
如果您使用的是 Windows 10 并使用 Docker 工具箱,请使用此
& "C:\Program Files\Docker Toolbox\docker-machine.exe" env | Invoke-Expression
答案 8 :(得分:0)
跑步 $ sudo docker组成-d 解决了我的问题。 实际上,我的权限问题是我通过提供详细选项了解的。
答案 9 :(得分:0)
我的问题是我在图像名称的变量前面缺少 $ 符号
image: imagename:{TAG:-develop-latest}
答案 10 :(得分:0)
安装后可以执行命令以访问docker功能而无需sudo。在我看来,所有相同的错误都在:
之后解决。$ sudo usermod -aG docker ${USER}
$ su - ${USER}
$ id -n
$ sudo usermod -aG docker username
,然后可以重新启动docker:
systemctl restart docker
答案 11 :(得分:0)
答案 12 :(得分:0)
如果您将Docker作为snap
软件包安装了,请尝试以下操作:
snap start docker
答案 13 :(得分:0)
尝试以root身份运行: sudo docker-compose build
答案 14 :(得分:0)
在我的特殊情况下,我在docker-compose.yml文件中指定的mysql服务已在项目根目录中创建了名为mysql_data
的卷。问题在于该目录以及包含的文件是使用用户999和docker组创建的。因此,我们实质上已经创建了一个权限问题,可以使用Handling Permissions With Docker Volumes
但是,要纠正当前的状况,您应该确定引起该问题的卷数据。在我的特定情况下,它是mysql_data
卷,因此我在项目根目录中执行了以下操作,以将文件和目录所有权更改为当前登录用户的所有权:
sudo chown -R ${USER}:${USER} mysql_data
如果不确定是哪个卷引起了与所有权相关的问题,为确保所有项目的所有权详细信息都相同,则应在项目根目录中执行以下操作:
sudo chown -R ${USER}:${USER} .
现在,如果您的项目处于Git源代码控制之下,由于执行上述命令之一,您现在将面临一种情况,即文件和目录的所有权不同于git存储对象数据库中的所有权。在这种情况下,您很可能会遇到类似于“ git: Unable to index file”的错误-在进一步向git项目存储库中添加和提交任何文件之前,应确保git对象中文件的所有权数据库是项目文件所有权的精确镜像。您可以通过在项目根目录中执行以下操作来确保这一点:
sudo chown -R ${USER}:${USER} .git/objects
现在已经解决了遇到的初始错误,现在可以发出原始的docker-compose命令,该命令最初成功导致“无法连接到Docker Daemon”错误。
答案 15 :(得分:0)
我注意到安装docker-compose后出现此错误。尝试运行sudo docker-compose build
给了我错误-
错误:无法连接到Docker守护程序。您可能需要安装Docker
我通过installing docker-ce(Ubuntu 16.04和18.04)解决了这个问题。此后一切都按预期进行
答案 16 :(得分:-1)
在所有“docker-compose”终端命令中使用“sudo”权限作为前缀。
答案 17 :(得分:-2)
就我而言,有时您只需要使用“ sudo docker-compose up”