首先我要声明,虽然有的服务器不能连外网!但是最好不要离线安装、最好不要、最好不要、最好不要,重要的事情说三遍,很多依赖很难解决,而且你漏装某些包也会出现奇怪的问题。
- 启动nginx镜像,这里不多解释了,很简单。
#docker run --name nginx_m --restart=always -v /tmp/docker:/usr/share/nginx/html:ro -p 80:80 -d nginx:1.7.6
(注:--restart=always是指在docker服务重启后,该容器服务也会自动重启)
- 宿主机安装配置keepalived
# 安装依赖包
yum install -y net-tools psmisc
yum install -y net-snmp
yum install -y ipvsadm keepalived
# 拷贝配置文件
cp /usr/share/doc/keepalived/samples/keepalived.conf.sample /etc/keepalived/keepalived.conf
# 编辑配置文件
vim /etc/keepalived/keepalived.conf
这里我要备注一下一个坑,由于我用了Docker Swarm,当你安装完ipvsadm的时候一定要systemctl restart docker,不然你先前通的的Docker Swarm网络是不通的。
master主机如下配置
backup如下配置
启动keepalived服务
service keepalived start
在master机器上面查看虚拟是否绑定上了
- 验证双活效果
访问172.16.34.214主机:
访问172.16.34.215主机:
访问172.16.34.216虚拟ip:
可以看出此时master主机nginx运行正常
把master主机ngxin服务停止
docker stop nginx_m
在215机子查看ip绑定
可以看到虚拟ip迁移至备份机器了,说明我们配置成功!
访问网页
再把master主机nginx恢复回来
docker start nginx_m
在214机子查看ip绑定
访问网页