这节课首先学下负载均衡 先搭建个nginx容器
前面我们使用Dockerfile对我们官方的一些镜像进行操作 ngnix在官方容器里使用的操作系统是Debain 实际开发中如果希望使用自己的操作系统(centos)也是可以的
这节学习下如何手工搭建nginx容器(不使用官方的)
首先我们执行docker images
我们根据最早的官方的纯净的镜像基础上搭建
一般在实际开发中 mysql apache jdk nginx这些内容可能都是分开的(放在不同容器中)
image.png
下面我们根据最早的纯净的centos镜像(利用交互式方式进入后使用yum方式) 安装nginx镜像
首先创建个临时容器
image.png
发现卡在这不动了
接下来在打开一个终端窗口 执行docker ps
image.png
可以发现tmp临时容器已经存在了 如果把该容器停掉了 则第一个窗口的进程也会被释放掉了(是一个临时容器)
接下来演示在非Dockerfile情况下 如何对容器进行操作
首先进入该容器
docker exec -it tmp /bin/bash
image.png
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
image.png
yum install nginx -y
yum方式安装的软件 配置存在 /etc/nginx/下面 nginx.conf为全局配置文件
image.png
image.png
设置开机自启动
image.png
curl http://localhost (nginx默认也是80端口)
image.png
在控制台中输出了默认的首页
说明nginx已经启动了
接下来把容器保存起来(因为对它进行操作了 下次启动不希望在重新安装nginx了)
希望把这个容器作为新的镜像保存起来
需要学习一个新命令
image.png
image.png
可以发现新的镜像出现了
docker images
image.png
容器一旦创建启动之后会暴露80端口并且会执行cmd里面的命令
接下来基于这个镜像来创建一个新的容器并把容器里面的文件(nginx配置文件)映射到主机 一旦修改(nginx配置文件肯定需要持久化的)一般来说不能不作处理的就存在容器里,因此需要拷贝
首先把内容从容器中拷贝出来
创建nginx文件夹并进入 创建conf文件夹 里面存放nginx配置文件
image.png
image.png
将容器里面的nginx配置文件拷贝到主机
image.png
image.png
到此步骤我们就可以把tmp容器停掉并删掉
我们已经有了新的镜像(nginx)
启动nginx镜像
image.png
docker run --privileged --name mynginx -p 9090:80 -v /home/bhc/nginx/conf/nginx.conf :/etc/nginx/nginx.conf -d centos:nginx
把主机里面的nginx配置文件映射到新启动的容器里面的nginx配置文件 这样就可以每次修改主机上的配置文件就能映射到容器里了(尽量要少操作容器)因为容器不是持久化的,不能每次修改配置文件 都提交(commit)一次新镜像
image.png
可以看见出现了mynginx (变成了一个新镜像)
现在我们进入容器和不进容器都是可以的
下面我们不进入容器操作nginx
curl http:localhost:9090
由于9090防火墙已经通行
http://192.168.31.125:9090也可以访问
有了nginx之后 我们可以做些扩展 实现负载均衡的实例 后面我们做两个网站 实现负载均衡 在nginx里面实现容器和容器之间交互
网友评论