创建三个docker容器以实现nginx的负载均衡

编写nginx的dockfile

[root@docker nginx]# cat Dockerfile
FROM nginx RUN echo 'i am container 1' > /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx","-g","daemon off;"]
[root@docker nginx]#

创建自定义网络

docker network create --driver bridge  --subnet 192.168.13.0/24 --gateway 192.168.13.1 mqynet

启动两个容器

docker run -d  --name docker01 -v modify:/usr/share/nginx/html --net mqynet -p 801:80   mqynginx
docker run -d --name docker02 -v modify2:/usr/share/nginx/html --net mqynet -p 802:80 mqynginx

--net 指定为自定义网络

修改容器2的内容

[root@docker _data]# pwd
/var/lib/docker/volumes/modify2/_data
[root@docker _data]# cat index.html
i am container 2
[root@docker _data]#

balancer dockerfile

[root@docker nginx]# cat balancer
FROM nginx RUN echo 'i am container 1' > /usr/share/nginx/html/index.html EXPOSE 80 RUN apt update && apt install -y vim && apt install net-tools -y CMD ["nginx","-g","daemon off;"]

进入balancer并安装ping命令

apt-get install inetutils-ping

尝试ping通容器名

ping docker02

修改balancer配置文件

upstream web{
server docker01;
server docker02;
} server {
listen 80;
listen [::]:80;
server_name localhost; #access_log /var/log/nginx/host.access.log main; location / {
proxy_pass http://web; #添加此location
}

重读配置文件

docker restart balancer

ctrl + q + p

暂停镜像

提交镜像

docker commit balancer balancer:2.0

再次生成balancer容器

docker run -d --name balancer -p 803:80 --net mqynet balancer:2.0

验证负载均衡

[root@docker docker]#
[root@docker docker]# curl localhost:803
i am container 2
[root@docker docker]# curl localhost:803
i am container 1
[root@docker docker]# curl localhost:803
i am container 2
[root@docker docker]# curl localhost:803
i am container 1

上传balancer镜像到云

登录云

docker login --username=sux registry.cn-sxy/balancer:2.0

给镜像打标签

docker tag f6e2cefb3ef0 registry.cn-sxy/balancer:2.0

docker push registry.cn-sxy/balancer:2.0

使用其他用户拿到镜像

docker pull registry.cn-sxy/balancer:2.0

关于挂载

modify:/usr/share/nginx/html 具名挂载

/xxx:/usr/share/nginx/html 路径挂载 (容器路径里的东西会被外面的文件直接覆盖)

docker nginx容器的均衡负载的更多相关文章

  1. tomcat+nginx+redis实现均衡负载、session共享(一)

    在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一些状况: 1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但总可能会有万一) ...

  2. 【转载】tomcat+nginx+redis实现均衡负载、session共享(一)

    http://www.cnblogs.com/zhrxidian/p/5432886.html 在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一 ...

  3. (转)tomcat+nginx+redis实现均衡负载、session共享(一)

    在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一些状况: 1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但总可能会有万一) ...

  4. Centos7 docker nginx容器搭建

    一.安装docker http://www.cnblogs.com/WJ--NET/p/8553807.html 二.创建Dockerfile #创建文件夹 mkdir centos_nginx cd ...

  5. tomcat+nginx+redis实现均衡负载、session共享(二)

    今天我们接着说上次还没完成session共享的部分,还没看过上一篇的朋友可以先看下上次内容,http://www.cnblogs.com/zhrxidian/p/5432886.html. 1.red ...

  6. tomcat+nginx+redis实现均衡负载以及session共享

    1.redis简介及下载安装 作为这次的主角,相信大家对redis应该都一定印象,redis是一款开源的高性能key-value数据库,拥有丰富的键值储存类型,并提供多种语言的API. 与一般数据库不 ...

  7. 【转载】tomcat+nginx+redis实现均衡负载、session共享(二)

    今天我们接着说上次还没完成session共享的部分,还没看过上一篇的朋友可以先看下上次内容,http://www.cnblogs.com/zhrxidian/p/5432886.html. 1.red ...

  8. 转 tomcat+nginx+redis实现均衡负载、session共享(二)

    http://www.cnblogs.com/zhrxidian/p/5491285.html http://www.cnblogs.com/zhrxidian/p/5432886.html

  9. Docker+nginx+tomcat7配置简单的负载均衡

    本文为原创,原始地址为:http://www.cnblogs.com/fengzheng/p/4995513.html 本文介绍在Docker上配置简单的负载均衡,宿主机为Ubuntu 14.04.2 ...

  10. 同主机下Docker+nginx+tomcat负载均衡集群搭建

    想用Docker模拟一下nginx+tomcat集群部署,今天折腾了一天,遇坑无数,终于在午夜即将到来之际将整个流程走通,借本文希望给同样遇到类似问题的小伙伴们留点线索. 主机环境是CentOS 7, ...

随机推荐

  1. 薄书的Gitee 码云使用教程学习纪录

    git 使用帮助 参考: https://www.liaoxuefeng.com/wiki/896043488029600/1163625339727712 https://blog.csdn.net ...

  2. nginx对称加密算法和非对称加密算法nginx证书配置

    对称加密算法 对称加密性能更好 对称加密: 客户端和服务器之间的通信数据是通过对称加密算法进行加密,对称加密是在加密和解密的过程中使用同一个私钥进行加密和解密,而且加密算法是公开的,所以对称加密中的私 ...

  3. windows 通过cmd命令(netsh wlan命令)连接wifi

    引用:https://www.cnblogs.com/moonbaby/p/11188135.html 1)显示本机保存的profiles,配置文件是以wifi的ssid命名的. netsh wlan ...

  4. keepalived高可用性负载均衡

    软件官网 http://www.keepalived.org/ 为什么需要keepalived 上图明显看出,LB机器应该是双节点,否则出现单点故障的问题,并且LB作为网站的入口,显然要提供高可用性的 ...

  5. 算法金 | 一文彻底理解机器学习 ROC-AUC 指标

    ​ 大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 在机器学习和数据科学的江湖中,评估模型的好坏是非常关键的一环.而 ROC(Rece ...

  6. 物理机安装Centos系统

    引言 在工作中,经常会在本地搭建开发环境,而使用的基本都是Linux系统,本文就教大家如何安装一套Centos Linux系统 准备 1.系统选择 系统:Centos 版本:7.9 2.镜像下载 下载 ...

  7. python pymysql 数据库查询操作

    import pymysql db= pymysql.connect(host="", user='', database="", password='') c ...

  8. mongodb安装及启动配置文件,允许远程访问连接

    windows安装https://www.runoob.com/mongodb/mongodb-window-install.html https://www.runoob.com/mongodb/m ...

  9. skywalking需要引入的背景(查询调用链),传统的日志查询方法, 引入EFK日志搜索重要性

    1.根据两次请求日志的关键点来截取日志,缩小日志的范围.tail -f orderApi.log | grep "orderKeyWordSubmit"     确定两次异常请求的 ...

  10. windows离线部署VSCode在Centos7上的远程开发环境

    前言 公司一直使用的是ssh+vim的远程开发方式,习惯了vim之后已经非常方便了.但是还是想尝试一下VSCode的开发方式.就我而言,原因如下 漂亮的语法高亮,并且有补全 基于语法解析的引用查找(尽 ...