繁体   English   中英

Ubuntu docker swarm错误“ docker:无法连接到Docker守护程序。 docker守护程序是否正在此主机上运行?”

[英]Ubuntu docker swarm error “docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.”

我正在尝试在一些Ubuntu 14.04流浪者盒子上使用领事设置docker swarm,但是docker守护进程存在问题。 我已经在运行progrium / consul容器和swarm manager容器。 172.28.128.3是运行一切的主计算机,172.28.128.4是我试图在其上启动docker swarm容器的计算机。 这是我的命令和输出:

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并没有其他问题,尝试以与在macs 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

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

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

您必须通过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

测试它是否正常工作

如果您使用的是实例或实例映像的克隆,而这些实例或实例映像已预安装了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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM