创建service

  • 使用docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]创建

    1. [root@localhost ~]# docker service create
    2. "docker service create" requires at least 1 argument.
    3. See 'docker service create --help'.
    4. Usage: docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
    5. Create a new service
    6. [root@localhost ~]# docker service create --help
    7. Usage: docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
    8. Create a new service
    9. ...
  • 例子

    1. [root@localhost ~]# docker service create nginx:latest
    2. ujf1xtef2e7xqleqrmh75b0mg
    3. overall progress: 1 out of 1 tasks
    4. 1/1: running [==================================================>]
    5. verify: Service converged
    6. [root@localhost ~]#
    7. [root@localhost ~]# docker service ls
    8. ID NAME MODE REPLICAS IMAGE PORTS
    9. ujf1xtef2e7x mystifying_cartwright replicated 1/1 nginx:latest

    Note:这里输出的id是service的id而非container的id。service等同于container。

查看service信息

  • docker service ls:查看所有的service基本信息
  • docker service ps [SERVICE_ID]:查看具体某个service的信息

    1. [root@localhost ~]# docker service ls
    2. ID NAME MODE REPLICAS IMAGE PORTS
    3. ujf1xtef2e7x mystifying_cartwright replicated 1/1 nginx:latest
    4. [root@localhost ~]#
    5. [root@localhost ~]# docker service ps uj
    6. ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
    7. nlj4so00wxz3 mystifying_cartwright.1 nginx:latest localhost.localdomain Running Running 3 minutes ago
  • 查看容器信息发现容器id与service id确实不一样

    1. [root@localhost ~]# docker container ls
    2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3. 49e36233b260 nginx:latest "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 80/tcp mystifying_cartwright.1.nlj4so00wxz3wo07lyktjzx3c

    利用replicas复制多个容器

    同一个服务启动多个容器

  • docker service update [SERVICE_ID] --replicas [NUMBER]

    1. [root@localhost ~]# docker service update uj --replicas 3
    2. uj
    3. overall progress: 3 out of 3 tasks
    4. 1/3: running [==================================================>]
    5. 2/3: running [==================================================>]
    6. 3/3: running [==================================================>]
    7. verify: Service converged
    8. [root@localhost ~]#
    9. [root@localhost ~]# docker service ls
    10. ID NAME MODE REPLICAS IMAGE PORTS
    11. ujf1xtef2e7x mystifying_cartwright replicated 3/3 nginx:latest
    12. [root@localhost ~]# docker service ps uj
    13. ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
    14. nlj4so00wxz3 mystifying_cartwright.1 nginx:latest localhost.localdomain Running Running 13 minutes ago
    15. v7l8v247h2qo mystifying_cartwright.2 nginx:latest localhost.localdomain Running Running 45 seconds ago
    16. xy85ftdwcpmp mystifying_cartwright.3 nginx:latest localhost.localdomain Running Running 45 seconds ago
    17. [root@localhost ~]#
    18. [root@localhost ~]# docker container ls
    19. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    20. 753076d85b2a nginx:latest "/docker-entrypoint.…" About a minute ago Up About a minute 80/tcp mystifying_cartwright.2.v7l8v247h2qo3x06tk31syvbx
    21. 6cf61228c7a3 nginx:latest "/docker-entrypoint.…" About a minute ago Up About a minute 80/tcp mystifying_cartwright.3.xy85ftdwcpmpibb41h8kkjof6
    22. 49e36233b260 nginx:latest "/docker-entrypoint.…" 13 minutes ago Up 13 minutes 80/tcp mystifying_cartwright.1.nlj4so00wxz3wo07lyktjzx3c
    23. [root@localhost ~]#

    swarm维护service的replicas

  • 先删除掉service中的某个replica即删除一个容器,会发现swarm会自动开启另一个replica

    1. [root@localhost ~]# docker container rm -f 753
    2. 753
    3. [root@localhost ~]#
    4. [root@localhost ~]# docker service ps uj
    5. ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
    6. nlj4so00wxz3 mystifying_cartwright.1 nginx:latest localhost.localdomain Running Running 16 minutes ago
    7. p16tkh74v5om mystifying_cartwright.2 nginx:latest localhost.localdomain Running Running 11 seconds ago
    8. v7l8v247h2qo \_ mystifying_cartwright.2 nginx:latest localhost.localdomain Shutdown Failed 17 seconds ago "task: non-zero exit (137)"
    9. xy85ftdwcpmp mystifying_cartwright.3 nginx:latest localhost.localdomain Running Running 4 minutes ago

    停止service

  • docker service rm [SERVICE_ID]

    1. [root@localhost ~]# docker service rm uj
    2. uj
    3. [root@localhost ~]# docker service ls
    4. ID NAME MODE REPLICAS IMAGE PORTS
    5. [root@localhost ~]#