swarm允许我们以节点的方式组织集群;每个节点上面可以部署一个或者多个服务;每个服务又可以包括一个或者多个container.下面会以官网的例子来讲下service,具体应用还是需要根据业务场景
在执行机manager执行以下命令
docker service create
\ --replicas 1
\ --name helloworld
\ alpine ping docker.com
9uk4639qpg7npwf3fn2aasksr
命令详解
- docker service create 创建service
- - -name 用于命名service
- - -replicas 指希望有几个node的service处于运行中
- alpine ping docker.com定义了service的内容,在alpine镜像中执行的命令 ping docker.com
使用docker service ls查看运行中的service
$ docker service ls
ID NAME SCALE IMAGE COMMAND
9uk4639qpg7n helloworld 1/1 alpine ping docker.com
使用docker service inspect 查看service详细信息
[manager1]$ docker service inspect --pretty helloworld
ID: 9uk4639qpg7npwf3fn2aasksr
Name: helloworld
Service Mode: REPLICATED
Replicas: 1
Placement:
UpdateConfig:
Parallelism: 1
ContainerSpec:
Image: alpine
Args: ping docker.com
Resources:
Endpoint Mode: vip
使用docker service ps 查看哪些node正在执行service
[manager1]$ docker service ps helloworld
NAME IMAGE NODE DESIRED STATE LAST STATE
helloworld.1.8p1vev3fq5zm0mi8g0as41w35 alpine worker2 Running Running 3 minutes
使用docker ps去node上查看具体的container
[worker2]$docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e609dde94e47 alpine:latest "ping docker.com" 3 minutes ago Up 3 minutes helloworld.1.8p1vev3fq5zm0mi8g0as41w35