我将Docker版本更新为后0.8.0,输入时收到错误消息sudo docker version:
Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host?
Run Code Online (Sandbox Code Playgroud)
我按照指示操作并输入命令sudo docker -d,我得到了这个:
[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
mol*_*vec 601
在为Linux安装后步骤文档揭示了以下步骤:
sudo groupadd docker
sudo usermod -aG docker $(whoami)
sudo service docker start
正如Dayel Ostraco所说,添加环境变量是必要的:
docker-machine start # Start virtual machine for docker
docker-machine env # It's helps to get environment variables
eval "$(docker-machine env default)" # Set environment variables
Run Code Online (Sandbox Code Playgroud)
该docker-machine start命令输出注释以指导该过程.
Day*_*aco 141
如果你在OS X上运行Docker,运行以下eval对我有用.
eval "$(docker-machine env default)"
Run Code Online (Sandbox Code Playgroud)
如果您不想在每个终端会话上运行此eval语句,可以将其添加到bash_profile:
#Docker
eval "$(docker-machine env default)"
Run Code Online (Sandbox Code Playgroud)
请务必重新启动终端会话或运行源bash_profile以使更改生效.
ken*_*orb 137
要在Linux上运行docker守护程序(从CLI),请运行:
$ sudo service docker start # Ubuntu/Debian
Run Code Online (Sandbox Code Playgroud)
注意:$复制和粘贴时跳过字符.
在RedHat/CentOS上,运行:sudo systemctl start docker.
要初始化"基本"文件系统,请运行:
$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start
Run Code Online (Sandbox Code Playgroud)
或手动喜欢:
$ sudo docker -d --storage-opt dm.basesize=20G
Run Code Online (Sandbox Code Playgroud)
docker-machine在Linux上安装要在Linux上安装机器二进制文件:
本地:
install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) $HOME/bin/docker-machine
Run Code Online (Sandbox Code Playgroud)全球:
sudo bash -c 'install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine'
Run Code Online (Sandbox Code Playgroud)在macOS上,docker二进制文件只是一个客户端,你不能使用它来运行docker守护进程,因为Docker守护进程使用特定于Linux的内核功能,因此你无法在OS X中本机运行Docker.所以你必须安装docker-machine才能创建VM并附加到它.
docker-machine在macOS上安装如果还没有docker-machine命令,请使用以下方法之一安装它:
brew install docker-machine docker.从GitHub手动:
install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine
Run Code Online (Sandbox Code Playgroud)请参阅:Docker for Mac入门.
docker-machine在macOS上配置要通过Homebrew 启动Docker Machine,请运行:
brew services start docker-machine
Run Code Online (Sandbox Code Playgroud)
要创建一default台机器(如果没有,请参阅:)docker-machine ls:
docker-machine create --driver virtualbox default
Run Code Online (Sandbox Code Playgroud)
然后为Docker客户端设置环境:
eval "$(docker-machine env default)"
Run Code Online (Sandbox Code Playgroud)
然后通过列出容器仔细检查:
docker ps
Run Code Online (Sandbox Code Playgroud)
除上述解决方案外,您还可以通过以下方式安装Docker应用:
brew cask install docker
Run Code Online (Sandbox Code Playgroud)
查看此帖子了解更多详情.另请参阅:无法连接到macOS上的Docker守护程序
K.A*_*.D. 100
经过详细调查后,每次重启Mac OS X(或重新启动 Docker虚拟机)后,这个问题似乎都会发生,这会阻止Docker客户端连接到Docker守护程序.
要解决此问题,您可以:
A)使用官方安装程序(https://www.docker.com/products/docker-toolbox)重新安装Docker Toolbox ,或者只是
B)按顺序运行以下命令:
# First make sure that the virtual machine is running
docker-machine start default
# Regenerate TLS connection certs, requires confirmation
docker-machine regenerate-certs default
# Finally, set env
eval "$(docker-machine env default)"
Run Code Online (Sandbox Code Playgroud)
C)与(B)相同,您还可以复制并粘贴以下行以运行所有三个命令:
docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"
Run Code Online (Sandbox Code Playgroud)
如果您收到以下错误:
Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err : exit status 255
output :
Run Code Online (Sandbox Code Playgroud)
再次重新运行这三个命令,它应该第二次运行.
nPc*_*omp 42
这通常发生在您不在docker小组中时.您可以将自己添加到docker组:
sudo usermod -aG docker yourusername
Run Code Online (Sandbox Code Playgroud)
要么
sudo usermod -aG docker $(whoami)
Run Code Online (Sandbox Code Playgroud)
在此之后,您需要注销并重新登录到服务器.
或者,您可以使用sudo每个Docker命令.
kev*_*rsi 28
如果上述所有其他解决方案都不起作用,您可以尝试检查以下所有权/var/run/docker.sock:
ls -l /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
如果您不是所有者,请使用以下命令更改所有权:
sudo chown *your-username* /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
然后你可以继续尝试无障碍地执行Docker命令:D
Rob*_*ell 16
找出Docker无法正常工作的最佳方法是手动运行守护进程.
$ sudo service docker stop
$ ps aux | grep docker # do this until you don't see /usr/bin/docker -d
$ /usr/bin/docker -d
Run Code Online (Sandbox Code Playgroud)
Docker守护程序记录到STDOUT,因此它将开始吐出它正在做的任何事情.
这是我的问题所在:
[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid
Run Code Online (Sandbox Code Playgroud)
这是因为该实例已从另一个虚拟机克隆.我只需要删除pid文件,之后一切正常.
当然,我建议不要盲目地假设这将有效,我建议再次手动运行守护进程,并在启动服务备份之前查看日志输出是否存在任何其他错误.
Sha*_*ang 14
如果您收到消息Can't connect to docker daemon. Is 'docker -d' running on this host?,可以查看docker version.
如果您看到Docker Client等信息正在运行.但是Docker Server不是,显然你需要启动Docker服务器.
在CentOS中,您可以使用service启动或停止Docker服务器.
$ sudo service docker stop
$ sudo service docker start
Run Code Online (Sandbox Code Playgroud)
然后,在您键入后docker version,您将获得Docker Client和Docker Server的信息,并且Docker守护程序已经启动.
Gal*_*ley 11
我安装后重启Docker:
$ sudo service docker stop
$ sudo service docker start
Run Code Online (Sandbox Code Playgroud)
它有效.
Rez*_*a S 10
执行a ps aux | grep docker以查看守护程序是否正在运行.如果没有运行/etc/init.d/docker start
ken*_*orb 10
使用适用于 macOS的新Docker 社区版应用程序。例如:
卸载您目前安装的所有 Docker Homebrew 软件包:
brew uninstall docker-compose
brew uninstall docker-machine
brew uninstall docker
Run Code Online (Sandbox Code Playgroud)
手动或通过Homebrew-Cask安装应用程序:
brew install --cask docker
Run Code Online (Sandbox Code Playgroud)
注意:这个程序将创建必要的环节docker,docker-compose,docker-machine,等。
docker, docker-compose,docker-machine命令了。有关的:
小智 10
如果您使用的是 Linux 并安装了 Docker Desktop,则您可能位于不同的 docker 上下文中。尝试运行以下命令:
docker context use default
Run Code Online (Sandbox Code Playgroud)
并再次尝试您之前尝试做的任何事情。您可能需要启动 docker 服务
service docker start
Run Code Online (Sandbox Code Playgroud)
如果您想检查计算机中的所有上下文:
docker context list
Run Code Online (Sandbox Code Playgroud)
您将看到可以切换到哪些。更详细的信息来自这里:
安装 Docker Desktop 时,会创建一个专用的“desktop-linux”上下文来与 Docker Desktop 交互。启动时,Docker Desktop 会自动将其自己的上下文 (desktop-linux) 设置为当前上下文。这意味着后续的 Docker CLI 命令以 Docker Desktop 为目标。关闭时,Docker Desktop 会将当前上下文重置为默认上下文。
小智 8
我有类似的问题.我不得不注销并再次登录shell,因为我刚刚安装了Docker,并且我的环境中没有显示以下命令.
export DOCKER_HOST=127.0.0.1:4243 >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
小智 8
我遇到了这个问题,我使用这些命令重新启动了Docker:
$ sudo service docker stop
$ sudo service docker start
Run Code Online (Sandbox Code Playgroud)
但我没有解决我的问题,因为我忘了执行我的Docker命令sudo.对于那些面临此问题的人,请尝试检查.
尝试
$ sudo docker info
Run Code Online (Sandbox Code Playgroud)
而不是这个:
$ docker info
Run Code Online (Sandbox Code Playgroud)
我有同样的错误,尝试docker-machine regenerate-certs或eval..不适合我.
这在OS X 10.11.3(El Capitan)和Docker v1.10.1上.我只能通过删除并重新创建docker-machine来修复它.资源
如果正在运行docker-machine ls,它会显示与下面相似的输出;
搬运工人
未知
错误
无法查询docker版本:无法连接到docker引擎端点
尝试删除您的Docker机器;
docker-machine rm -f default
Run Code Online (Sandbox Code Playgroud)
default你的Docker机器名称在哪里.然后;
docker-machine create -d virtualbox default
Run Code Online (Sandbox Code Playgroud)
创建一个新的Docker机器.
仔细检查现在一切正常(没有错误或未知的Docker):
docker-machine ls
Run Code Online (Sandbox Code Playgroud)
最后不要忘记"$(docker-machine env default)"在继续或运行Docker Quickstart终端之前运行,它为您完成...
小智 6
我知道这篇文章已经有很多答案了。我只想补充一个解决上述问题的简单答案。
sudo systemctl start docker
Run Code Online (Sandbox Code Playgroud)
运行上面的命令,它将启动所有与docker相关的线程/服务。
您可以使用此答案/sf/answers/2351729831/ ,即使使用此答案后您仍然会遇到相同的错误。那么您可能之前安装了 docker Desktop,现在切换到 docker-engine
您可以使用此命令删除 docker 桌面服务文件
$ rm -rf ~/.docker
Run Code Online (Sandbox Code Playgroud)
我有同样的问题 - "无法连接到docker守护进程." (除了我在尝试启动服务器时没有收到任何'找不到文件'错误.)
'ps'显示"/ usr/bin/docker -d"仍在运行
我意识到我自己从未真正成功地运行过服务器.每一次尝试都产生了
...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid
Run Code Online (Sandbox Code Playgroud)
所以我姗姗来迟地意识到安装docker可能已经用upstart注册了守护进程,这已经为我启动了它.因此,尝试终止守护进程以手动重启它失败(操作不允许).所以我做了一个
sudo kill -9 <PID>
Run Code Online (Sandbox Code Playgroud)
在守护进程上.另一个守护进程立即取而代之,这个新守护进程现在让我的CLI客户端连接:
$ sudo docker info
Containers: 0
Images: 0
Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 0
WARNING: No memory limit support
WARNING: No swap limit support
Run Code Online (Sandbox Code Playgroud)
我只是在Amazon AWS上运行时遇到了同样的问题。
这是我尝试的:
docker-machine使用现有的AWS实例在本地设置dockerd确实可行...在远程计算机上进行了以下测试:
service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success
Run Code Online (Sandbox Code Playgroud)
我删除/var/lib/docker并卸载了所有内容,但是重新安装后没有成功。不幸的是,我没有因故障而存储任何日志,docker.service只是拒绝启动。
但是,最终解决了我的问题的基本上是:
sudo usermod -aG docker $(whoami)
Run Code Online (Sandbox Code Playgroud)
关注 Docker 的 DOC 站点:以非 root 用户身份管理 Docker
1) 创建 Docker 组
sudo groupadd docker
Run Code Online (Sandbox Code Playgroud)
2) 使用户属于 docker 组以获得该组的权限。
sudo usermod -aG docker $USER
Run Code Online (Sandbox Code Playgroud)
检查是否为您的 shell 设置了 DOCKER_HOST 环境变量。
env | grep DOCKER_HOST
Run Code Online (Sandbox Code Playgroud)
如果存在,
unset DOCKER_HOST
Run Code Online (Sandbox Code Playgroud)
那么这应该工作:
docker run hello-world
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令
sudo service docker stop
sudo service docker start
Run Code Online (Sandbox Code Playgroud)
简单地启动它。
| 归档时间: |
|
| 查看次数: |
510247 次 |
| 最近记录: |