Docker swarm中的Jenkins服务停留在0/1副本

时间:2017-05-30 04:23:42

标签: docker docker-swarm docker-swarm-mode

我尝试使用以下命令在docker swarm中运行容错Jenkins:

docker service create --replicas 1 --name jenkins -p 8080:8080 -p 50000:50000 --mount src=/home/ubuntu/jenkins_home,dst=/var/jenkins_home jenkins:alpine

但是检查服务状态和运行的容器我发现副本保持在0。

ubuntu@ip-172-30-3-81:~$ docker service create --replicas 1 --name jenkins -p 8080:8080 -p 50000:50000 --mount src=/home/ubuntu/jenkins_home,dst=/var/jenkins_home jenkins:alpine
14kwt6xoxorn62irnv9y2wm3r
ubuntu@ip-172-30-3-81:~$ docker service ls
ID            NAME        REPLICAS  IMAGE           COMMAND
14kwt6xoxorn  jenkins     0/1       jenkins:alpine  
87ovyhkparou  helloworld  1/1       alpine          ping docker.com
ubuntu@ip-172-30-3-81:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
739f8180c989        alpine:latest       "ping docker.com"        21 minutes ago      Up 21 minutes                                     helloworld.1.4rz08cygb7whjmzm3922h0bfb

我尝试在一个容器中运行Jenkins(没有swarm)并且它运行良好,而docker's tutorial的swarm服务示例也可以完美运行。

什么阻止Jenkins服务运行?

1 个答案:

答案 0 :(得分:2)

问题在于传递给--mount选项的参数。

当我根据docker swarm documentation传递docker卷时,我试图将源作为主机目录传递。为了纠正这个问题,我做了以下几点。

docker volume create --name jenkins_home 

docker service create --replicas 1 --name jenkins -p 8080:8080 -p 50000:50000 --mount source=jenkins_home,dst=/var/jenkins_home jenkins:alpine

作为旁注,我认为当无法找到挂载源时,docker显示错误消息会很有用。