Docker Swarms
Swarm 是一组运行着Docker的机器。经过这些配置后,将节点加入到一个集群中,你仍然像之前那样运行Docker命令一样管理集群上的容器。这些命令由swarm manager在集群上执行。这些机器可以是真实的机器,也可以是虚拟机。机器加入到一个swarm后,可以称这些机器为节点(node)。
2.12.1. 管理 Swarms
帮助命令
neo@MacBook-Pro ~ % docker-machine Usage: docker-machine [OPTIONS] COMMAND [arg...] Create and manage machines running Docker. Version: 0.16.1, build cce350d7 Author: Docker Machine Contributors - <https://github.com/docker/machine> Options: --debug, -D Enable debug mode --storage-path, -s "/Users/neo/.docker/machine" Configures storage path [$MACHINE_STORAGE_PATH] --tls-ca-cert CA to verify remotes against [$MACHINE_TLS_CA_CERT] --tls-ca-key Private key to generate certificates [$MACHINE_TLS_CA_KEY] --tls-client-cert Client cert to use for TLS [$MACHINE_TLS_CLIENT_CERT] --tls-client-key Private key used in client TLS auth [$MACHINE_TLS_CLIENT_KEY] --github-api-token Token to use for requests to the Github API [$MACHINE_GITHUB_API_TOKEN] --native-ssh Use the native (Go-based) SSH implementation. [$MACHINE_NATIVE_SSH] --bugsnag-api-token BugSnag API token for crash reporting [$MACHINE_BUGSNAG_API_TOKEN] --help, -h show help --version, -v print the version Commands: active Print which machine is active config Print the connection config for machine create Create a machine env Display the commands to set up the environment for the Docker client inspect Inspect information about a machine ip Get the IP address of a machine kill Kill a machine ls List machines provision Re-provision existing machines regenerate-certs Regenerate TLS Certificates for a machine restart Restart a machine rm Remove a machine ssh Log into or run a command on a machine with SSH. scp Copy files between machines mount Mount or unmount a directory from a machine with SSHFS. start Start a machine status Get the status of a machine stop Stop a machine upgrade Upgrade a machine to the latest version of Docker url Get the URL of a machine version Show the Docker Machine version or a machine docker version help Shows a list of commands or help for one command Run 'docker-machine COMMAND --help' for more information on a command.
2.12.1.1. 查看 Swarms 版本
neo@MacBook-Pro ~ % docker-machine version docker-machine version 0.16.1, build cce350d7
2.12.1.2. 初始化 Swarms
neo@MacBook-Pro ~/workspace/docker/docker-compose % docker swarm init Swarm initialized: current node (t8gqr7wfyeis9n8wuegy4j6gn) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-5w5joob510ug74m9vfn2j1a41nox3ddh6eiyrpgonm38zaoj5c-bo2q6tdem9ihd68gryue1b42x 192.168.65.3:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
2.12.1.3. 显示 join-token
neo@MacBook-Pro ~ % docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-200v95u6lkow6wyxne1ll44rhhwy1zfvawnrqo39i44sqay8vp-1vltkdz94y79mgech56wtnj9n 192.168.65.3:2377
2.12.1.4. 创建虚拟机
使用VirtualBox驱动,创建虚拟机:
neo@MacBook-Pro ~ % docker-machine create --driver virtualbox vm1 neo@MacBook-Pro ~ % docker-machine create --driver virtualbox vm2
2.12.1.5. 显示虚拟机列表
$ docker-machine ls
2.12.1.6. 设置管理节点
配置虚拟机作为manager节点,用以执行管理命令并准许其他worker加入到swarm中。
$ docker-machine ssh vm1 "docker swarm init --advertise-addr <ip_address>"
加入到管理节点
$ docker-machine ssh vm2 "docker swarm join \ --token <token> \ &l