介绍
localhost:
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
remote:
docker run -d -p 9000:9000 portainer/portainer -H tcp://<REMOTE_HOST>:<REMOTE_PORT>
swarm:
docker service create \ --name portainer \ --publish 9000:9000 \ --constraint 'node.role == manager' \ --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \ portainer/portainer \ -H unix:///var/run/docker.sock
Protainer 提供了基本的Docker管理.其中包括,容器管理,镜像,网络,存储等常用管理.作为一款本地测试使用还是比较简单和实用的.
基于swarm ,负责管理集群环境.
docker-machine create --driver virtualbox m1 docker-machine create --driver virtualbox n1 docker-machine create --driver virtualbox n2
docker run \
-ti \
-d \
-v /Users/jun/.docker/machine/machines/m1:/certs:ro \
--restart=always \
--name shipyard-swarm-manager \
swarm:latest \
manage \
--tlsverify --tlscacert=/certs/ca.pem --tlscert=/certs/cert.pem --tlskey=/certs/key.pem \
--host tcp://0.0.0.0:3376 etcd://192.168.99.100:4001`
绑定n1,n2两个节点:
docker run \
-ti \
-d \
--restart=always \
--name shipyard-swarm-agent \
swarm:latest \
join --addr 192.168.99.101:2376 etcd://192.168.99.100:4001
docker run \
-ti \
-d \
--restart=always \
--name shipyard-swarm-agent \
swarm:latest \
join --addr 192.168.99.102:2376 etcd://192.168.99.100:4001
启动controller(shipyard):
docker run \
-ti \
-d \
-v /Users/jun/.docker/machine/machines/m1:/certs:ro \
--restart=always \
--name shipyard-controller \
--link shipyard-rethinkdb:rethinkdb \
--link shipyard-swarm-manager:swarm \
-p 8080:8080 \
shipyard/shipyard:latest \
server \
-d tcp://172.17.0.5:3376 \
--rethinkdb-addr "172.17.0.3:28015" \
--tls-ca-cert=/certs/ca.pem --tls-cert=/certs/cert.pem --tls-key=/certs/key.pem
Rancher
这个厉害了,容器管理平台 目前比较出名的有google的k8s,apache的mesos, 之后就是docker的swarm, swarm提供了基于dockerAPI,而k8s号称谷歌几十年最佳实践,而mesos更是为成千集群服务. rancher提供了全平台的容器管理(支持swarm,k8s,mesos).基础的操作包括Host,账户设置等.这里
Rancher swarm
- 创建一个env ,rancher已经提供了一个swarm模板,使用模板创建一个swarm-test 环境.
- 配置主机之后,将会自动初始化swarm环境,这里提供了一个CLI工具可以实现docker的命令
- 创建一个应用堆栈 swarm-stack,容器通过镜像创建,如果是一个集群则启动容器将在不同的机器上面,比如创建一个常用的服务,redis,mysql,tomcat,java,nginx,这些应用分布在不同的机器上面,每个容器就代表了一种服务,多个服务组成了堆栈,
- 可以配置负载均衡,这里涉及到一些 scale, haproxy 一些概念,官方文档上面只是说明scale是一种容灾方案,如果一个容器出现问题,则就会使用备用容器.haproxy,则是一种生产环境的负载均衡实现.
Rancher k8s
通过UI我们来学习下k8s的概念,以及如何使用