(八)Docker Swarm 搭建 Nginx 服务

1. Nginx镜像

docker-nginx的root路径是:/usr/share/nginx/html

[root@Thor _data]# docker run -dit --name nginx -P -v my_volume:/usr/share/nginx/html nginx:latest

[root@Thor _data]# ls
50x.html  aliyun.jpg  index.html
[root@Thor _data]# docker volume inspect my_volume
[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/my_volume/_data",
        "Name": "my_volume",
        "Options": {},
        "Scope": "local"
    }
]
[root@Thor _data]# docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
462b38e12ef2        nginx:latest        "nginx -g 'daemon ..."   22 minutes ago      Up 22 minutes       0.0.0.0:32770->80/tcp    nginx
[root@Thor _data]# 

http://10.86.10.214:32770/aliyun.jpg

2. Docker Swarm 搭建 Nginx 集群

[root@Thor volumes]# docker volume ls
DRIVER              VOLUME NAME
local               my_volume
[root@Thor volumes]# 
[root@Thor volumes]# 
[root@Thor volumes]# clear
[root@Thor volumes]# 
[root@Thor volumes]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
996812025ea1        bridge              bridge              local
3996a5cca929        docker_gwbridge     bridge              local
7f779eaf12fc        host                host                local
00ea96ba8181        my-net              bridge              local
bab9f30b8cbc        none                null                local
[root@Thor volumes]# 
[root@Thor volumes]# docker swarm init
Swarm initialized: current node (nawy26ys5d8t35poovzca09gf) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-08lysjmybp1f2gi2z3myfy4rqjm5n0jy9h4ah3ap1uv7x16c9z-5plyyozoy6ty6p3vfmc9838y8 \
    10.86.10.214:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

[root@Thor volumes]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
996812025ea1        bridge              bridge              local
3996a5cca929        docker_gwbridge     bridge              local
7f779eaf12fc        host                host                local
i9hsx10utcfw        ingress             overlay             swarm
00ea96ba8181        my-net              bridge              local
bab9f30b8cbc        none                null                local
[root@Thor volumes]# docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
nawy26ys5d8t35poovzca09gf *  Thor      Ready   Active        Leader
[root@Thor volumes]# docker service ls
ID  NAME  MODE  REPLICAS  IMAGE
[root@Thor volumes]# docker service create --replicas 3 -p 1992:80 --mount type=volume,source=my_volume,destination=/usr/share/nginx/html --name nginx nginx:latest
vb34nrb7rc86rag1hkw20dcia
[root@Thor volumes]# docker service ls
ID            NAME   MODE        REPLICAS  IMAGE
vb34nrb7rc86  nginx  replicated  1/3       nginx:latest
[root@Thor volumes]# docker service ls
ID            NAME   MODE        REPLICAS  IMAGE
vb34nrb7rc86  nginx  replicated  3/3       nginx:latest
[root@Thor volumes]# 
[root@Thor volumes]# docker service ls
ID            NAME   MODE        REPLICAS  IMAGE
vb34nrb7rc86  nginx  replicated  3/3       nginx:latest
[root@Thor volumes]# 
[root@Thor volumes]# docker container ls
CONTAINER ID        IMAGE                                                                           COMMAND                  CREATED             STATUS              PORTS                    NAMES
3f4fc77d40f5        nginx@sha256:1b109555ad28bb5ec429422ee136c5f5ab5ee6faaeb518836a5c9a3b6436a1bd   "nginx -g 'daemon ..."   48 seconds ago      Up 47 seconds       80/tcp                   nginx.3.25xb0q9ai3a0n1egw3bbu2ofk
e5275a076b6e        nginx@sha256:1b109555ad28bb5ec429422ee136c5f5ab5ee6faaeb518836a5c9a3b6436a1bd   "nginx -g 'daemon ..."   48 seconds ago      Up 48 seconds       80/tcp                   nginx.1.xg5lm0izzbnpp54j7grqliv8h
7573ec039bbd        nginx@sha256:1b109555ad28bb5ec429422ee136c5f5ab5ee6faaeb518836a5c9a3b6436a1bd   "nginx -g 'daemon ..."   49 seconds ago      Up 48 seconds       80/tcp                   nginx.2.t55k1n9yxqdw3xdony4ypt5bs
bb8e12657b50        google/cadvisor                                                                 "/usr/bin/cadvisor..."   3 weeks ago         Up 3 weeks          0.0.0.0:8080->8080/tcp   cadvisor
[root@Thor volumes]# 
[root@Thor volumes]# docker service ls
ID            NAME   MODE        REPLICAS  IMAGE
vb34nrb7rc86  nginx  replicated  3/3       nginx:latest
[root@Thor volumes]# docker service --help

Usage:  docker service COMMAND

Manage services

Options:
      --help   Print usage

Commands:
  create      Create a new service
  inspect     Display detailed information on one or more services
  ls          List services
  ps          List the tasks of a service
  rm          Remove one or more services
  scale       Scale one or multiple replicated services
  update      Update a service

Run 'docker service COMMAND --help' for more information on a command.
[root@Thor volumes]# docker service ps
"docker service ps" requires exactly 1 argument(s).
See 'docker service ps --help'.

Usage:  docker service ps [OPTIONS] SERVICE

List the tasks of a service
[root@Thor volumes]# docker service ps nginx
ID            NAME     IMAGE         NODE  DESIRED STATE  CURRENT STATE               ERROR  PORTS
xg5lm0izzbnp  nginx.1  nginx:latest  Thor  Running        Running about a minute ago         
t55k1n9yxqdw  nginx.2  nginx:latest  Thor  Running        Running about a minute ago         
25xb0q9ai3a0  nginx.3  nginx:latest  Thor  Running        Running about a minute ago         
[root@Thor volumes]# docker service inspect nginx
[
    {
        "ID": "vb34nrb7rc86rag1hkw20dcia",
        "Version": {
            "Index": 12
        },
        "CreatedAt": "2018-09-01T06:50:00.889456834Z",
        "UpdatedAt": "2018-09-01T06:50:00.890534652Z",
        "Spec": {
            "Name": "nginx",
            "TaskTemplate": {
                "ContainerSpec": {
                    "Image": "nginx:latest@sha256:1b109555ad28bb5ec429422ee136c5f5ab5ee6faaeb518836a5c9a3b6436a1bd",
                    "Mounts": [
                        {
                            "Type": "volume",
                            "Source": "my_volume",
                            "Target": "/usr/share/nginx/html"
                        }
                    ],
                    "DNSConfig": {}
                },
                "Resources": {
                    "Limits": {},
                    "Reservations": {}
                },
                "RestartPolicy": {
                    "Condition": "any",
                    "MaxAttempts": 0
                },
                "Placement": {},
                "ForceUpdate": 0
            },
            "Mode": {
                "Replicated": {
                    "Replicas": 3
                }
            },
            "UpdateConfig": {
                "Parallelism": 1,
                "FailureAction": "pause",
                "MaxFailureRatio": 0
            },
            "EndpointSpec": {
                "Mode": "vip",
                "Ports": [
                    {
                        "Protocol": "tcp",
                        "TargetPort": 80,
                        "PublishedPort": 1992,
                        "PublishMode": "ingress"
                    }
                ]
            }
        },
        "Endpoint": {
            "Spec": {
                "Mode": "vip",
                "Ports": [
                    {
                        "Protocol": "tcp",
                        "TargetPort": 80,
                        "PublishedPort": 1992,
                        "PublishMode": "ingress"
                    }
                ]
            },
            "Ports": [
                {
                    "Protocol": "tcp",
                    "TargetPort": 80,
                    "PublishedPort": 1992,
                    "PublishMode": "ingress"
                }
            ],
            "VirtualIPs": [
                {
                    "NetworkID": "i9hsx10utcfw3q6dxgx4stp7t",
                    "Addr": "10.255.0.4/16"
                }
            ]
        },
        "UpdateStatus": {
            "StartedAt": "0001-01-01T00:00:00Z",
            "CompletedAt": "0001-01-01T00:00:00Z"
        }
    }
]
[root@Thor volumes]# 
posted @ 2018-09-01 16:53  yvhqbat  阅读(2853)  评论(0编辑  收藏  举报