Docker 1.12 是docker 最近发布的版本,当前这个版本还没法自己用包管理工具直接下载安装,得下载源代码编译安装。
因为需要proxy,注意得在源码的Dockerfile 文件上设置http_proxy 等环境变量。
如果不是git下载而是zip下载还得在Makefile文件设置DOCKER_GITCOMMIT。
编译后生成的二进制文件替换原系统的docker 文件。启动docker 服务即可以使用。
Docker 1.12 相对于之前的版本最大的特色就是集成了swarm (这是要和k8s死磕的节奏啊)。
root@cloud-server-2:/usr/bin# docker swarm init
root@cloud-server-1:~#docker swarm join cloud-server-2:2377
root@cloud-server-2:/usr/bin# docker service create --nameng nginx
7wlte0hh3x0x9ckyyis3y7ql1
root@cloud-server-2:/usr/bin# docker service ls
ID NAME REPLICAS IMAGE COMMAND
7wlte0hh3x0x ng 1/1 nginx
root@cloud-server-1:/opt/docker# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0604e23d8997 nginx:latest "nginx -g'daemon off" 6 seconds ago Up 4 seconds 80/tcp, 443/tcp ng.1.5ayj56otui86p7hr3zlq0kfaw
root@cloud-server-1:/opt/docker# docker rm -f 0604e23d8997
0604e23d8997
root@cloud-server-1:/opt/docker# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e8e51af64c4e
root@cloud-server-2:/usr/bin# docker service scale ng=3
ng scaled to 3
root@cloud-server-2:/usr/bin# docker service list
ID NAME REPLICAS IMAGE COMMAND
07bdsp3vs8ru vote 1/1 instavote/vote
7wlte0hh3x0x ng 2/3 nginx
可以看到swarm 的REPLICAS 和k8s的repilcation 一样可以保持容器的数量,如果节点或者容器意外销毁,会重启启动新的容器,这个功能弥补了swarm早期版本只是简单API转发后就不管的功能,大大提高了集群的稳定性。同时这个版本的docker也提出了service 概念(真的是和k8s死磕)。
总体感受新版的docker 极大地增强了它在容器集群管理方面的功能,又简化了之前swarm操作。