Ubuntu docker swarm error“docker:无法连接到Docker守护进程。 docker守护程序是否在这个主机上运行?

我正在尝试在一些Ubuntu 14.04stream浪盒上与领事build立docker swarm,但docker守护进程存在问题。 我已经有一个progrium / consul容器正在运行,并且正在运行一个swarm manager容器。 172.28.128.3是主机运行的一切,172.28.128.4是我试图启动Docker群容器的机器。 这是我的命令和输出:

vagrant@ubuntu-14:~$ docker -H=172.28.128.4:2375 run -d swarm join \ > --advertise=172.28.128.4:2375 \ > consul://172.28.128.3:8500/ docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?. See 'docker run --help'. 

docker没有其他问题,并尝试启动守护进程,就像我在我的Mac上boot2docker给出以下输出:

 vagrant@ubuntu-14:~$ eval "$(docker-machine env default)" docker-machine: command not found 

更新:这里是$sudo docker info$docker info的输出(除了下面描述的一行之外,它们是完全相同的)

 vagrant@ubuntu-14:~$ sudo docker info Containers: 8 Running: 2 Paused: 0 Stopped: 6 Images: 8 Server Version: 1.11.1 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 81 Dirperm1 Supported: false Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: null host bridge Kernel Version: 3.13.0-24-generic Operating System: Ubuntu 14.04 LTS OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 993.9 MiB Name: ubuntu-14 ID: BBEM:JVHD:UXV7:AGQR:ITUY:3KGT:K4RS:7KSR:ESCJ:2VZQ:QTOG:J26U Docker Root Dir: /var/lib/docker Debug mode (client): false Debug mode (server): false Registry: https://index.docker.io/v1/ WARNING: No kernel memory limit support 

这两个命令之间唯一的区别在于, $docker info对于Network:有以下条目Network:

  Network: host bridge null 

在我的第二台机器上,两个命令输出之间完全没有区别。

更新:在我的工作机器上的文件/ etc / default / DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"添加DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"并重新启动docker在我的工作服务器上的服务sudo docker restart swarm工作正常。 谢谢JorelC的解决scheme。

你必须configuration你想通过tcp使用docker的所有机器以tcp模式运行。 在你的远程机器上 (你的问题是172.28.128.4),编辑/ etc / default / docker文件并在DOCKER_OPTS中添加如下内容

 DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock" 

之后,您需要重新启动服务:

 sudo service docker restart 

你应该通过tcp使用docker 。 尝试从您的客户机:

 docker -H=172.28.128.4:2375 info 

testing它是否工作

如果您正在使用已预装Docker的实例克隆或实例映像,则也可能存在问题。

为了避免使用下面的shell脚本:

 #UNINSTALL sudo apt-get purge -y docker-engine sudo apt-get autoremove -y --purge docker-engine #CLONES sudo rm /etc/docker/key.json #INSTALL sudo apt-get install -y curl sudo curl -sSL http://get.docker.com | sudo sh sudo usermod -aG docker $(whoami) sudo su root 

如果你想使用最新版本的docker swarm(1.12,内置docker swarm),使用下面的脚本:

 # DOCKER 1.12.0 sudo apt-get update sudo apt-get purge -y lxc-docker docker-engine sudo apt-get autoremove -y --purge docker-engine sudo curl -fsSL https://experimental.docker.com/ | sudo sh sudo chmod 777 /etc/default/docker echo 'DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"' > /etc/default/docker sudo chmod 755 /etc/default/docker sudo rm /etc/docker/key.json sudo service docker restart sudo usermod -aG docker $(whoami) sudo su root