《尚庭公寓》项目部署之Docker + Nginx

powershell 复制代码
docker rmi nginx 
docker pull nginx 

docker rm -f nginx 

#先创建一个简易的nginx容器(后面会删),然后通过 docker cp命令把容器里面的nginx配置反向拷贝到宿主主机上。
docker run --name nginx -p 80:80 -d nginx

# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /mountdata/nginx/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /mountdata/nginx 
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /mountdata/nginx
# 将容器中log文件夹复制到宿主机
docker cp nginx:/var/log/nginx /mountdata/nginx/log 

#自定义测试项目的conf文件
#"/mountdata/nginx/conf.d/hello-nginx.conf"
server {
listen       8080;
server_name  192.168.200.131;

location /hello-nginx {
    root   /usr/share/nginx/html;
    index  index.html;
}
}

#"/mountdata/nginx/conf.d/hello-proxy.conf"
server {
    listen       9944;
    server_name  192.168.200.131;

    location / {
        proxy_pass http://www.atguigu.com;
    }
}

#【问题】root为什么是/usr/share/nginx/html,而不是/mountdata/nginx/html?
#【原因】/usr/share/nginx/html指向了Nginx容器内部的路径,而这个路径已经通过Docker的卷挂载映射到了宿主机的/mountdata/nginx/html目录

# 删除正在运行的nginx容器
docker rm -f nginx

# 80是默认端口(即"Welcome to nginx!"那个页面),8080是测试项目端口,部署几个项目就要写几个-p端口
docker run -d \
--name=nginx \
-v /mountdata/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /mountdata/nginx/html:/usr/share/nginx/html \
-v /mountdata/nginx/conf.d/:/etc/nginx/conf.d \
-v /mountdata/nginx/log:/var/log/nginx \
--restart=always \
--network=hmall \
-p 80:80  \
-p 8080:8080 \
-p 9944:9944 \
nginx:latest
# 【注释】
# -d 表示以后台守护进程形式运行容器。
# --name=nginx 为容器指定了一个名称
# -v 选项用于挂载宿主机目录到容器内的对应目录,分别挂载了Nginx的配置文件、HTML文件、conf.d目录以及日志目录,这有助于容器内外数据的共享和持久化。
# --restart=always 确保容器随Docker服务启动而自动启动。
# --network=hmall 将容器连接到名为hmall的网络。
# -p 80:80 映射容器的80端口到宿主机的80端口,用于默认的Nginx欢迎页面。
# -p 8080:8080 映射容器的8080端口到宿主机的8080端口,用于自定义的测试项目。
# -p 9944:9944 同上

# 重启容器
docker restart nginx

访问http://192.168.200.131:80,成功!

访问http://192.168.200.131:8080/hello-nginx,成功!

访问http://192.168.200.131:9944,成功!

相关推荐
小冉在学习13 分钟前
day53 图论章节刷题Part05(并查集理论基础、寻找存在的路径)
java·算法·图论
代码之光_19801 小时前
保障性住房管理:SpringBoot技术优势分析
java·spring boot·后端
ajsbxi1 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
StayInLove1 小时前
G1垃圾回收器日志详解
java·开发语言
对许1 小时前
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“
java·log4j
无尽的大道1 小时前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
小鑫记得努力2 小时前
Java类和对象(下篇)
java
binishuaio2 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE2 小时前
【Java SE】StringBuffer
java·开发语言
老友@2 小时前
aspose如何获取PPT放映页“切换”的“持续时间”值
java·powerpoint·aspose