Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离
Docker的安装
一、Docker的概念
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

二、安装Docker
1.检查内核版本
# uname -r 查看当前linux得版本信息
Docker要求CentOS7最低内核版本为3.1版本
2. 关闭防火墙和selinux
# systemctl stop firewalld
# setenforce 0
3.使用yum安装docker
# yum install -y docker
# systemctl start docker 开启docker服务
_______________________________________________________________________________
# ps aux | grep docker 查看docker服务
# docker search nginx 查看nginx镜像
(# docker pull centos:7 ) 下载官方的 CentOS 镜像到本地
# docker pull docker.io/nginx 下载nginx镜像
# docker pull docker.io/tomcat 下载tomcat镜像
由于Docker官方服务器在海外,因此不推荐使用,这里建议使用网易蜂巢镜像中心
https://c.163.com/hub#/m/home/
4.同步时间
# date 022019512017
5.安装docker -devel
# yum -y install docker-devel
6.下载镜像
# docker pull hub.c.163.com/library/tomcat:latest
# docker pull hub.c.163.com/library/nginx:latest
# docker pull hub.c.163.com/public/centos:7.0

# docker images 查看下载好的镜像

这时创建容器会报错,因此需要修改/usr/lib/sysctl.d/00-system.conf
添加如下代码:net.ipv4.ip_forward=1
重启network服务
# systemctl restart network
在docker配置负载均衡
创建nginx容器
# docker tag db079554b4d2 nginx:111 修改镜像名字
# docker run -ti -d -p 80:80 hub.c.163.com/library/nginx
/bin/bash 创建nginx容器
# docker ps (-a) 查看docker运行中(所有)容器

# docker exec -ti a62119e032b3
/bin/bash 进入后台容器并提供bash
# /usr/sbin/nginx 启动nginx服务
# apt-get update 升级vim
# apt-get
install vim 安装vim
在宿主机的根目录创建两个tomcat的发布目录# mkdir
www1 www2

创建tomcat容器1&2(利用Xshell复制ssh渠道功能再开两个窗口)
# docker run -ti -d -P -h tomcat1 -v /www1:/usr/local/tomcat/webapps/ROOT
hub.c.163.com/library/tomcat /bin/bash
# docker ps –a

# docker exec -ti f6725eb67195 /bin/bash
# bin/startup.sh
# docker run -ti -d -h tomcat2 -P -v /www2:/usr/local/tomcat/webapps/ROOT
hub.c.163.com/library/tomcat /bin/bash

# docker ps -a
# docker exec -ti 5157b553106d /bin/bash
#
bin/startup.sh
使用# docker ps -a在宿主机查看映射的端口

为tomcat1&2映射的目录写下测试页面,我在这里使用tomcat1和tomcat2作为页面内容区分
# cd /www1
# vim index.jsp
# cd /www2
# vim index.jsp


在nginx容器中进行负载均衡配置
# vim
/etc/nginx/nginx.conf
upstream zeyu {
server
192.168.81.60:32771;
server
192.168.81.60:32772;
}

# vim /etc/nginx/conf.d/default.conf
# location /
{
# root
/usr/share/nginx/html;
# index
index.html index.htm;
# }
location ~ {
proxy_pass http://zeyu;
}

# pkill nginx
# /usr/sbin/nginx
验证

Docker的动静分离
在Docker的nginx容器中修改
# vim /etc/nginx/conf.d/default.conf
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location ~*\.jsp$ {
proxy_pass http://zeyu;
proxy_redirect off;
}

# pkill nginx
# /usr/sbin/nginx
浏览器访问验证
访问IP/index.html为nginx欢迎页面

访问IP/index.jsp为tomcat测试页面1&2


Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离的更多相关文章
- Docker安装nginx以及负载均衡
首先在linux系统中新建一个data文件夹进行nginx容器的创建--即为:mkdir data. 一:第一次 1 第一步: 使用 docker pull nginx将nginx的镜像从仓库下载下来 ...
- 如何利用nginx实现负载均衡(总结)
如何利用nginx实现负载均衡(总结) 一.总结 一句话总结: 推荐使用nginx七层(应用层)负载均衡的实现:配置那是相当的简单 1.nginx配置实例? |||-begin #这里的域名要和下面p ...
- 利用nginx实现负载均衡和动静分离
1.Nginx介绍 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 . Nginx 是由 ...
- liunx 利用nginx 实现负载均衡
一般采用软件实现负载均衡的有Nginx.apache.nginx 近年来使用频繁,其官网上面显示可以承载5万并发访问量,太牛了. nginx 相比 apache优势明显:Nginx 服务程序比较稳定, ...
- 若依项目利用nginx实现负载均衡及保持会话
记录一下若依项目利用nginx实现负载均衡及保持会话的步骤. 此次作为试验性的测试,为了方便在本地window的环境上实现. 具体步骤: 1.安装两个tomcat8,可以下载一个后,另一个复制即可,下 ...
- Linux下利用nginx实现负载均衡
linux下利用nginx实现负载均衡 前提条件: 1,安装好jdk 2,安装好tomcat和nginx(可以参考我前两篇文章) 满足前提条件后,要用nginx实现负载均衡,主要是靠配置nginx的配 ...
- [转帖]利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞
利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞 2018年08月02日 10:06:03 Minza 阅读数 483 https://blog.csdn.net/ha ...
- [转]CENTOS 6.5 配置YUM安装NGINX+服务器负载均衡
原文连接: CENTOS 6.5 配置YUM安装NGINX http://blog.sina.com.cn/s/blog_69f467b70102uyux.html 参考博文: Centos下安装. ...
- 解决docker中使用nginx做负载均衡时并发过高时的一些问题
# 解决docker中使用nginx做负载均衡时并发过高时的一些问题 1.问题产生原因: 由于通过nginx作为负载均衡服务,在访问并发数量达到一定量级时jmeter报错. nginx日志关键信息:a ...
随机推荐
- 正确理解WPF中的TemplatedParent (转贴)
http://blog.csdn.net/idebian/article/details/8761388 (注:Logical Tree中文称为逻辑树,Visual Tree中文称为可视化树或者视觉树 ...
- 软工作业1:wc.exe项目开发(java)
Github地址:https://github.com/Zzhaomin/learngit 项目相关要求 : wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个 ...
- .net Stream篇(七)
NetworkStream 目录: NetworkStream的作用 简单介绍下TCP/IP 协议和相关层次 简单说明下 TCP和UDP的区别 简单介绍下套接字(Socket)的概念 简单介绍下Tcp ...
- 11款PHP集成开发环境
1. Zend Studio Zend Studio 来自 Zend —— PHP 幕后的精英团队. 它真的是很不错.它运行于三大系统:Windows.Mac OS X 和 Linux.而且绝对能够提 ...
- C# Socket 发送&接收&返回
因为工作比较忙,好久没有写过博客了,最近因项目需求,需要用到Socket来进行通信,简单写了几个例子,记录一下,代码很简单,无非就是接收与发送,以及接收到数据后返回一个自定义信息,也可以说是发送. 先 ...
- VSCode调试设置
tasks.json { "version": "0.1.0", "isShellCommand": true, "args&qu ...
- mac下redis和zookeeper启动及测试命令
mac下启动命令: sudo su - root cd /usr/local/bin/ ./redis-server ../etc/redis.conf cd /software/zook ...
- B - N皇后问题
原文链接 一天课下,张老板研究起了国际象棋,渴望完美的他更改了棋盘的大小,在N*N的方格棋盘放置了N个皇后,希望它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的 ...
- Docker安装FastDFS
什么是FastDFS? FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制, 充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用 ...
- java学习笔记之对象序列化
1.简述 java对象序列化就是将对象编程二进制数据流的一种方法,从而实现对对象的传输和存储 2.作用 java是门面向对象编程语言,即一切皆对象,但是java对象只能存在于jvm中,一旦jvm停掉那 ...