Docker
Docker machine
Docker machine负责docker在本地或远程机及虚拟云上的安装,可在自己的Mac或Linux机上负责远程活本地的虚拟机上的docker安装。
安装Docker machine:
1 | $ curl -L https://github.com/docker/machine/releases/download/v0.8.2/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && \ |
注意安装远程机之前一定确保运行机可ssh登录远程机。
1 | $ docker-machine create --driver generic \ |
安装docker之后确保每台安装机运行:
1 | $ sudo groupadd docker |
1 | $ docker-machine env default #"default为远程安装机的hostname" |
不使用docker-machine安装docker:
1 | # Ubuntu机 |
docker machine的运行机制:
Docker swarm
Swarm中提供了6种不同的发现(discovery)机制:token(默认) Discovery、Node Discovery、File Discovery、Consul Discovery、EtcD Discovery和Zookeeper Discovery。
token发现:
1 | #生成全球唯一的token作为docker cluster的全球唯一id号 |
1 | $ docker run -d swarm join --advertise=<node_ip:2375> token://<cluster_id> |
zk发现:
1 | $ docker run -d swarm join --advertise=<node_ip:2375> zk://<zk1:2181>,<zk2:2181>,<zk3:2181>,.../swarm |
swarm manage
在需要作为manager机上运行:
1 | $ docker run -d -p 2376:2375 --name swarm_manage swarm manage zk://<zk1:2181>,<zk2:2181>,<zk3:2181>,.../swarm |
使用swarm管理和启动docker
1 | $ docker -H tcp://<swarm_ip:2376> <command> |
Note:
为了保证swarm manage管理的节点正常通信,需要每个节点做如下2点修改:
1 | $ sudo vim /etc/default/docker |
对于Centos,docker的配置文件如下:
1 | $ sudo vim /etc/sysconfig/docker |
1 | 需要对每台机器添加各自的hosts |
swarm的框架:
docker-Zookeeper
1 | #或者mesoscloud/zookeeper:3.4.8-centos |
docker-Mesos
Mesos同样通过zk服务发现保证HA。
Mesos HA模式参考这里
- 3个mesos master
1 | docker run -d \ |
- 每台node的mesos slave
1 | docker run -d \ |
mesos cluster框架
mesos job
docker-marathon
1 | #这个docker-marathon没有expose 8080端口,如果需要,则制作继承镜像 |
Mesos-Chronos
1 | docker run -d --net=host \ |
mesos-spark
spark框架
spark-mesos run
spark-mesos demo
1 | $ docker run --net=host \ |
待补充
Compose
Jekins
参考资料:
docker-machine的命令文档
swarm discovery
mesos cluster