当我把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?
我按照说明,输入命令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
我怎么解决这个问题?
我的问题是,docker的默认路径。Sock不在docker daemon所在的位置。
我的默认地址是/home/user/。Docker,但是Docker守护进程在/var/bin中。
我确实设置了env变量来设置正确的地址,这解决了问题
export DOCKER_CONFIG = '/var/bin'
https://docs.docker.com/engine/reference/commandline/cli/
我在ubuntu上安装了docker desktop,所以这可能是问题所在,或者为什么我的DOCKER_CONFIG设置不正确。
我也遇到了同样的问题——“无法连接到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
所以我后来才意识到,安装docker可能已经注册了upstart守护进程,upstart已经为我启动了它。因此,试图杀死守护进程以手动重新启动它会失败(不允许操作)。所以我做了一个
sudo kill -9 <PID>
守护进程。另一个守护进程立即取代了它的位置,这个新的守护进程现在让我的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
检查你是否正在使用Docker Machine:)
运行docker-machine env default就可以了。
因为根据文档:
Docker Machine is a tool that lets you install Docker Engine on
virtual hosts, and manage the hosts with docker-machine commands. You
can use Machine to create Docker hosts on your local Mac or Windows
box, on your company network, in your data center, or on cloud
providers like AWS or Digital Ocean.
Using docker-machine commands, you can start, inspect, stop, and
restart a managed host, upgrade the Docker client and daemon, and
configure a Docker client to talk to your host.
Point the Machine CLI at a running, managed host, and you can run
docker commands directly on that host. For example, run
docker-machine env default to point to a host called default, follow on-screen
instructions to complete env setup, and run docker ps,
docker run hello-world, and so forth.
https://docs.docker.com/machine/overview/