docker入门:【docker安装nginx】【docker安装tomcat】保姆级教学!超详细版本(代码+图解)
是一个高性能的 Web 服务器 和 反向代理服务器,也可以用作负载均衡器、HTTP 缓存和邮件代理。它由俄罗斯工程师伊戈尔·赛索耶夫开发,2004年发布,以占用内存少、处理并发能力强而闻名。相当于一个万能的门卫:· 当你访问一个网站时,浏览器请求先到达nginx、它决定是直接返回网页文件(HTML/图片),还是请求转发给后端的应用程序(比如java、python、PHP)· 若很多用户同时访问,N
【docker安装nginx】
【了解nginx】
Nginx 是一个高性能的 Web 服务器 和 反向代理服务器,也可以用作负载均衡器、HTTP 缓存和邮件代理。它由俄罗斯工程师伊戈尔·赛索耶夫开发,2004年发布,以占用内存少、处理并发能力强而闻名。
相当于一个万能的门卫:
· 当你访问一个网站时,浏览器请求先到达nginx、它决定是直接返回网页文件(HTML/图片),还是请求转发给后端的应用程序(比如java、python、PHP)
· 若很多用户同时访问,Nginx可以把请求分摊给多台后段服务器(负载均衡),避免某一台累垮
· 他还能缓存经常请求的内容,加快响应速度
作用:
1️⃣ 静态文件服务器
直接提供 HTML、CSS、JavaScript、图片等文件。比如把前端项目放在 Nginx 后面,用户访问时不需要动态生成内容,效率极高。
2️⃣ 反向代理
用户请求到达 Nginx 后,Nginx 将请求转发给内部的服务(如 Tomcat、Node.js、Django 等)。对外暴露的是 Nginx 的地址,隐藏了后端真实服务,增加安全性。
3️⃣ 负载均衡
当有多个后端服务实例时,Nginx 可以按策略(轮询、最少连接、IP哈希等)把请求分发到不同的实例,提高系统整体处理能力。
4️⃣ 缓存加速
Nginx 可以缓存后端返回的响应,下次相同请求直接返回缓存内容,减轻后端压力,提升响应速度。
5️⃣ SSL/TLS 终端
Nginx 可以处理 HTTPS 加密,与客户端建立安全连接,再以 HTTP 方式与后端通信,简化后端配置。
与docker的关系:
·在docker中,经常运行nginx容器来;作为Web服务器测试前端页面;
· 作为反向代理把请求转发到其他容器(如docker run -p 80:80 nginx只是最基础的用法)
· 配合Let‘s Encrypt 做 HTTPS 终端
对比apache占据内存小,处理高并发能力强,配置相对简单。
【nginx安装步骤】
下载镜像pull
docker pull nginx #下载nginx;
docker images #查看是否启动
运行测试:可以通过公网的3344可以访问到docker里面的80端口
⚠️简单来说就是:后台启动一个叫nginx01的Nginx容器,并把你自己电脑(宿主机)的端口映射到容器的80端口,这样访问自己电脑的3344端口就能看到容器里的Nginx页面。
对外(公网)你访问3344端口,对内(容器)实际时80端口在工作;
docker run -d --name nginx01 -p 3344:80 nginx #宿主机端口映射到80端口
⚠️:-p表示暴露端口;宿主机端口:容器那边端口
--name [名字] 给这个容器取名叫nginx01
这里可以验证一下docker端口映射是否成功
curl localhost:3344 #验证
此时已经成功了!!
这时在浏览器中打开http://localhost:3344同样可以看到欢迎页面
【docker安装tomcat】
首先可以去dockerhub上搜索一下,#如果不想使用最新的可以去看一下版本号;
【tomcat安装步骤】
docker pull tomcat:9.0-jdk11 #下载tomcat 或者可以直接
docker pull tomcat #这个命令很快就可以搜索到,下载速度快\
docker images #查看正在运行的容器
⚠️:在下载tomcat的时候一定要加一个jdk的版本


docker run -d -p 3355:8080 --name tomcat01 tomcat #内部的3355给外部的8080做一个映射,并且给容器去一个新名字叫tomcat01

查看公网:

⚠️:这时需要把容器中的webapps.dist中的文件复制下载到webapps中
⚠️!原因是:当你访问 http://虚拟机IP:3355 时,Tomcat 默认会在 webapps 目录下寻找一个叫 ROOT 的应用。如果找不到,就会返回 HTTP 404 状态码(未找到)。而我们下载的tomcat镜像为了精简体积,默认吧webapps目录清空了,而把默认的欢迎页面和示例应用放在了webapps.dist目录里。所以需要手动吧webapp.dist里的内容复制到webapps中
【复制文件】
docker exec -it tomcat01 /bin/bash #进入romcat01容器中
ls #查看当前目录下的文件
cd ./webapps #回到webapps目录中
ls #查看webapps文件中,什么也没有;确认404原因
cp -r webapps.dist/* webapps #复制webapps.dist中的文件,放在webapps中
cd /usr/local/tomcat/webapps #回到webapps目录
ls #可以看到已经存在
回到公网查看,页面正常显示

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐







所有评论(0)