主机安装完docker后,无论是部署、发布、持续化集成等都不是特别方便,所以出现了大量第三方的docker管理工具,来界面化的管理docker。
如果安装docker时过慢,也可以使用daocloud提供的镜像。
这些docker管理平台可以通过界面来创建镜像、拉取远程镜像、部署到指定主机、启停、增删扩容镜像,避免了命令操作的繁琐,和在多个主机上维护大量docker的繁琐。
这一篇来看看rancher
docker pull rancher/server 这个Rancher的server镜像。这个镜像是比较大的,里面包含了mysql数据库、Tomcat服务器等。
如果下载时太慢,可以配置docker加速器,建议使用daocloud提供的加速器https://www.daocloud.io/mirror,curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
然后使用下面的命令来启动rancher
docker run -d -p 8000:8080 rancher/server
以8000端口启动Rancher,注意Rancher和Tomcat一样默认也是8080端口,覆盖为8000.
访问服务器8000端口,看到Rancher的界面,右下角可以修改为中文。
由于任何访问服务器的人都可以打开Rancher界面,我们需要先进行权限控制,在系统管理-访问控制里选择local,设置个账号密码。
下次再进到Rancher就需要输账号密码了。
这个没什么好说的,就是可以添加多个环境分配给不同的用户权限,可以把测试环境、生产环境分离开进行管理,根据页面的说明操作即可。
我们使用Rancher的目的就是管理很多主机上的各个docker容器。所以需要添加主机。
第四步填写主机地址,如果Rancher也安装在要管理的主机上时,IP必须设置,如果要管理的主机不和Rancher在一个服务器,可以不填,看图上的说明。
第5步是在主机上安装Rancher的客户端,让Rancher好发现并管理该主机。
运行第5步后,docker会下载rancher-agent镜像。
然后刷新一下Rancher界面,就可以看到该主机已经被添加进来了。
应用是一个比较大的概念,我们可以理解为一个项目,项目里包含很多个独立部署的子模块。然后可以给应用里添加很多个服务(子模块),一个服务搭配一个或多个相同的容器。
添加应用时可以上传docker-compose.yml来一次性添加一组服务,也可以不指定,就简单的起个名字。
添加应用后,可以添加服务,服务就是docker容器了。
可选项有很多,有run一个或多个容器,总是在每台主机运行一个该容器,名称,重要的是选择镜像这里,填写你的镜像地址。然后端口映射,就相当于在命令行的-p 8080:8080。服务链接就是docker link。下面还有一堆tab,个别还是有用的。每一个可填项都有docker命令与之对应。
比较常用的有自动重启(可选),环境变量就是命令行的-e(非常常用),卷就是-v,卷来自就是volume from,网络里的主机名可以设置,还可以设置标签,然后在调度里设置标签和主机的调度关系。
选择镜像时,默认是拉取docker hub里的镜像,也可以在《基础架构》菜单中添加别的镜像库,譬如daocloud等,添加第三方镜像库后就可以直接拉取第三方的镜像了。
在添加服务时,也可以添加负载均衡,这个是基于HaProxy的负载均衡,一般作为请求的入口,根据不同的访问路径来转发请求到不同的服务。
注意docker的系统时间和主机的不一样,会少8个小时,需要挂载-v /etc/localtime:/etc/localtime:ro 才可以让docker的时间和主机一样,但是里面的java程序还是不行,需要再在docker环境变量设置 -e TZ="Asia/Shanghai"就好了