docker的介绍与安装和常用命令介绍
看本文时请先查看docker的安装与介绍,废话就不多说了,直接开车。
1.docker拉取nginx镜像 没有指定版本
docker pull nginx
2.直接先启动--为了拷贝配置文件
docker run -p80:80 --name nginx -d nginx
3.拷贝文件(这步很重要)
mkdir -p /mydata/nginx/html
mkdir -p /mydata/nginx/logs
docker container cp nginx:/etc/nginx .
4.停止nginx 并删除容器
docker stop nginx
docker rm nginx
5.修改文件名
// 切换到mydata后 把nginx改名字为conf
mv nginx conf
// 进入html创建文件并写入内容
echo '<h2>hello nginx!</h2>' >index.html
6.运行容器
注意,\前面是有空格的
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx
7.设置自动启动
docker update nginx --restart=always
8.设置反向代理服务
1.在nginx.conf 中加入 需要代理的服务名 以及server的地址 默认使用轮训策略
也可以配置ip_hash策略以及一致性hash,一致性hash可以解决session共享
最下面的include代表引入conf.d文件夹的所有配置都生效。
2.进入conf.d文件夹打开default.conf配置文件准备编辑
vi default.conf
上面图片只是简单配置了
location / 详细配置是 如果不按照下面设置 在代理转发到gateWay时会丢失请求的信息和头等
proxy_next_upstream http_502 http_504 error timeout invalid_header; 设置头信息
proxy_set_header Host $host; //设置真实请求的主机
proxy_set_header X-Real-IP $remote_addr; // 设置真实请求的地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; //设置转发带参数
proxy_pass http://my; // 转到服务
expires 3d; // 过期时间
8.我这里反向代理服务是到两台tomcat 端口分别是8080和8081
注意:记得开放云服务的80端口给信任的主机ip 便于访问。
再次刷新 端口发生变化 说明代理成功
上面就是整个docker 安装nginx的整个过程和命令,并且配置文件都挂载在我指定的mydata/nginx/ 文件夹中,方便后续的修改。如果有什么疑问,以及错误,希望大家多多指教。