小知识:Docker挂载资料卷部署Nginx

简介

上一篇总结了下docker内mysql的资料卷设置方式,走b/s方向怎么能忘记nginx呢?今天来补上这一篇。

Nginx资料卷

nginx的作用有很多,比如正向代理、反向代理、负载均衡、透明代理等,一般情况下使用较多的是反向代理和负载均衡。这些操作只需要修改配置文件就可以完成,所以我们只需要将配置文件同步在本地即可。nginx配置文件的路径是 etc/nginx/nginx.conf ,首先创建对应目录和文件:

%小知识:Docker挂载资料卷部署Nginx-猿站网-插图

nginx1目录下的nginx.conf也要创建,内容空着就行。接下来查看镜像是否正常:

%小知识:Docker挂载资料卷部署Nginx-1猿站网-插图

如果还没有下载镜像,使用以下命令拉取镜像(默认最新版):

docker pull nginx

接下来运行容器:

docker run -itd -p 80:80 –name nginx001 -v /docker/nginx1/nginx.conf:/etc/nginx/nginx.conf nginx

解释一下:

-itd:开启交互模式,模拟终端,后台运行 -p 80:80:对应端口映射到宿主机 –name nginx001:自定义容器名称 -v /docker/nginx1/nginx.conf:/etc/nginx/nginx.conf:将宿主机的对应文件映射到nginx的配置文件

nginx:运行的镜像名称

运行以上命令以后,会返回随机字符串代表容器创建成功:

%小知识:Docker挂载资料卷部署Nginx-2猿站网-插图

查看运行中的容器:

%小知识:Docker挂载资料卷部署Nginx-3猿站网-插图

没有看到nginx001,肯定是运行的时候出错了,我们来看一下错误信息:

%小知识:Docker挂载资料卷部署Nginx-4猿站网-插图

大概意思是配置文件中没有找到events节点。因为我们创建的文件内容是空的,所以启动容器的时候直接把对应目录下的nginx.conf给映射到nginx001里面的nginx.conf了,空配置的nginx当然无法运行。

现在vi刚才本地创建好的nginx.conf,开始配置:

%小知识:Docker挂载资料卷部署Nginx-5猿站网-插图

之前我在docker上部署了一个简易的 .net core 程序,占用本地端口 1500 ,现在我把程序通过nginx反向代理到一个指定域名,并通过80端口访问。配置文件写好以后,重启容器nginx001:

%小知识:Docker挂载资料卷部署Nginx-6猿站网-插图

现在nginx001就成功启动了,我们访问一下刚才指定的域名:

%小知识:Docker挂载资料卷部署Nginx-7猿站网-插图

nginx的配置已经生效。

最后我们来尝试一下docker重启会不会导致配置初始化,重启docker:

%小知识:Docker挂载资料卷部署Nginx-8猿站网-插图

启动两个容器:

%小知识:Docker挂载资料卷部署Nginx-9猿站网-插图

访问页面:

%小知识:Docker挂载资料卷部署Nginx-10猿站网-插图

数据库并没有因为docker重启而被初始化,证明资料卷已经生效。以后再也不怕docker宕机而数据丢失了。

补充

nginx配置文件中的 proxy_pass 属性,非docker环境配置的时候,localhost或127.0.0.1是可以正常生效的,但是在docker下nginx容器配置localhost或127.0.0.1时,有一个小坑导致无法完成实际的反向代理。因为容器运行时,docker会给它分配单独的ip和端口,然后把docker占用的ip映射到容器ip(比如docker下mysql启动后,使用localhost可以登陆客户端)。但nginx启动时,会先读取配置文件,配置正确的话才会运行,所以容器运行成功后,docker才把本地ip映射进去。如果配置文件写的是localhost或127.0.0.1,那么只有直接访问容器的ip才会触发反向代理。所以如果在服务器使用docker配置nginx,直接输入服务器ip即可完成配置。

到此这篇关于Docker挂载资料卷部署Nginx的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/muchengqingxin/p/13193117.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Jenkins实现集群化管理以及流水线项目配置

2023-3-10 10:11:00

建站知识

小知识:Docker中Dockerfile制作镜像的方法步骤

2023-3-10 10:26:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索