我正在尝试在AWS上配置docker swarm示例。
我有三台机器:两个节点和管理器,使用docker-machine创建:
docker-machine create --driver amazonec2 --amazonec2-region eu-central-1 swarm-manager
docker-machine create --driver amazonec2 --amazonec2-region eu-central-1 docker1
docker-machine create --driver amazonec2 --amazonec2-region eu-central-1 docker2
我设置docker1
和2就像这样:
设置/ etc / default / docker:
DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
重新启动docker然后:
sudo docker run -d swarm join --addr=172.31.5.27:2375 token://<token>
并检查了它:
ubuntu@docker1:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a4ae06e827a6 swarm "/swarm join --addr=1" 28 minutes ago Up 28 minutes 2375/tcp admiring_blackwell
在群集机器上:
sudo docker run -dP swarm manage token://
我添加了我的节点:
ubuntu@swarm-manager:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
67f55fda2eba swarm "/swarm manage token:" 16 minutes ago Up 16 minutes 0.0.0.0:32768->2375/tcp trusting_dijkstra
ubuntu@swarm-manager:~$ docker -H tcp://127.0.0.1:32768 info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: swarm/1.2.5
Role: primary
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint
Nodes: 2
(unknown): 172.31.11.143:2375
└ ID:
└ Status: Pending
└ Containers: 0
└ Reserved CPUs: 0 / 0
└ Reserved Memory: 0 B / 0 B
└ Labels:
└ Error: Cannot connect to the Docker daemon. Is the docker daemon running on this host?
└ UpdatedAt: 2016-10-29T16:34:28Z
└ ServerVersion:
(unknown): 172.31.5.27:2375
└ ID:
└ Status: Pending
└ Containers: 0
└ Reserved CPUs: 0 / 0
└ Reserved Memory: 0 B / 0 B
└ Labels:
└ Error: Cannot connect to the Docker daemon. Is the docker daemon running on this host?
└ UpdatedAt: 2016-10-29T16:34:38Z
└ ServerVersion:
Plugins:
Volume:
Network:
Swarm:
NodeID:
Is Manager: false
Node Address:
Security Options:
Kernel Version: 4.2.0-18-generic
Operating System: linux
Architecture: amd64
CPUs: 0
Total Memory: 0 B
Name: 67f55fda2eba
Docker Root Dir:
Debug Mode (client): false
Debug Mode (server): false
WARNING: No kernel memory limit support
我无法解释为什么imy节点仍处于未决状态。我使用的私有IP似乎是正确的,加上两个节点是listes。任何提示?
答案 0 :(得分:0)
这可能与this issue有关。我的理解是使用Docker 1.12.1创建的docker机器存在问题。我得到的错误是
Error checking TLS connection: "mybox" is not a swarm master. The --swarm flag is intended for use with swarm masters
运行后
eval $(docker-machine env --swarm mybox)
你可能会通过略有不同的路线到达同样的问题,但我遇到了相同的群体问题。
答案 1 :(得分:0)
您需要使用docker-machine ssh aws-swarm-mgr
登录群组管理器,然后启动
首先在主节点上docker-swarm init
。
然后使用登录到从属节点 docker-machine ssh docker1
请注意在此加入主人的令牌,示例输出
docker swarm join --token SWMTKN-1-65v85za1nnkg4u09e1jbgtk86b3pl8ntawj0ha6m6upzbyho5z-4fasp7wt5f13ts16arypbrpa1 192.168.99.100:2377
从docker1节点和docker2节点
运行docker swarm join --token xxxLOREMIPSUMTOKENx ip:2377
要确认以上内容,请登录主节点
docker-machine ssh aws-swarm-mgr
从内部,主aws节点
aws-swarm-mgr> docker node ls
应该这样做。
答案 2 :(得分:0)
我在AWS上有一个带有三个节点的docker群。我应该通过任何三个公共IP地址查看我的网页。我已经打开了docker doc上所述的必需安全组。我认为他们的叠加层驱动程序有此错误...