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操作。