创建Docker集群
创建管理节点
docker swarm init --advertise-addr 192.168.214.134
Swarm initialized: current node (fn141bj35cm6giol6lc4xrdbg) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-4ktuevhnsdh0hiwicqfxqvr3m4zw8c6ew212n7veidkk9xa2mt-cwova8081btr4gi7k9mjlf6g3 192.168.214.134:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
创建visualizer容器,用于在web上查看集群内的服务状态
docker run -it -d -p 8080:8080 --name visualizer -v /var/run/docker.sock:/var/run/docker.sock dockersamples/visualizer
在集群中添加子节点
docker@worker1:~$ docker swarm join --token SWMTKN-1-4ktuevhnsdh0hiwicqfxqvr3m4zw8c6ew212n7veidkk9xa2mt-cwova8081btr4gi7k9mjlf6g3 192.168.214.134:2377
This node joined a swarm as a worker.
docker@worker2:~$ docker swarm join --token SWMTKN-1-4ktuevhnsdh0hiwicqfxqvr3m4zw8c6ew212n7veidkk9xa2mt-cwova8081btr4gi7k9mjlf6g3 192.168.214.134:2377
This node joined a swarm as a worker.
查看节点信息
docker@Manager:~$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
7p0i3e8o57eo3pi676hv5f0ub worker1 Ready Active
fn141bj35cm6giol6lc4xrdbg * Manager Ready Active Leader
nvlhrn1vlrg1sn66hkyphxuyd worker2 Ready Active
查看节点的详细信息
docker@Manager:~$ docker node inspect fn141bj35cm6giol6lc4xrdbg --pretty
ID: fn141bj35cm6giol6lc4xrdbg
Hostname: Manager
Joined at: 2017-07-14 03:01:26.170403463 +0000 utc
Status:
State: Ready
Availability: Active
Address: 192.168.214.134
Manager Status:
Address: 192.168.214.134:2377
Raft Status: Reachable
Leader: Yes
Platform:
Operating System: linux
Architecture: x86_64
Resources:
CPUs: 4
Memory: 3.842GiB
Plugins:
Log: awslogs, fluentd, gcplogs, gelf, journald, json-file, logentries, splunk, syslog
Network: bridge, host, macvlan, null, overlay
Volume: local
Engine Version: 17.06.0-ce
TLS Info:
TrustRoot:
-----BEGIN CERTIFICATE-----
MIIBaTCCARCgAwIBAgIUCFPwjCnBaEq+SqJQVqOg/gtxNwQwCgYIKoZIzj0EAwIw
EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNzE0MDI1NjAwWhcNMzcwNzA5MDI1
NjAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH
A0IABGDUW/oycxQlKCAW4UkIw9s+clf8HHwNVMDgLyVzuEm2ptmUo6UAMuD11F3D
LRS+aFbI19MnxF55W25ZSQcVP5KjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
Af8EBTADAQH/MB0GA1UdDgQWBBSpBSKWON4N4dVYEtSrr5lwyo8hejAKBggqhkjO
PQQDAgNHADBEAiBF/IyG1jLiNeP2vClEC4UL97FfOU7ie22Xqz81bRD13gIgVRmu
7YhoqSxSnjOMyB738lzdH1/dft/pGHpJ/iZWPKI=
-----END CERTIFICATE-----
Issuer Subject: MBMxETAPBgNVBAMTCHN3YXJtLWNh
Issuer Public Key: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYNRb+jJzFCUoIBbhSQjD2z5yV/wcfA1UwOAvJXO4Sbam2ZSjpQAy4PXUXcMtFL5oVsjX0yfEXnlbbllJBxU/kg==
创建service
root@manager:~# docker service create --name hellodocker alpine ping docker.com
w8ero71tzo1e6d42tiymrdoru
Since --detach=false was not specified, tasks will be created in the background.
In a future release, --detach=false will become the default.
查看service
root@manager:~# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
w8ero71tzo1e hellodocker replicated 1/1 alpine:latest
查看服务运行在哪个节点
root@manager:~# docker service ps hellodocker
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
jyj6qqjzv8n8 hellodocker.1 alpine:latest manager Running Running 2 seconds ago
如上,服务部署在 worker节点上,进入worker节点,在worker节点上运行 docker ps
docker@worker:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7098b163c52 alpine:latest "ping docker.com"