《尚庭公寓》项目部署之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,成功!

相关推荐
六千江山19 分钟前
从字符串中提取符合规则的汽车车牌
java
33255_40857_2805927 分钟前
从韩立结婴看Java进阶:一个10年老码农的修仙式成长指南
java
赵星星52028 分钟前
透彻理解Java中的深拷贝与浅拷贝:从误区到最佳实践
java·后端
心月狐的流火号29 分钟前
Java CompletableFuture 核心API
java
黑客影儿39 分钟前
Java技术总监的成长之路(技术干货分享)
java·jvm·后端·程序人生·spring·tomcat·maven
京东云开发者44 分钟前
EXCEL导入—设计与思考
java·架构
Warren981 小时前
软件测试-Selenium学习笔记
java·javascript·笔记·学习·selenium·测试工具·安全
tb_first1 小时前
k8sday11服务发现(2/2)
docker·云原生·容器·kubernetes·k8s
没有bug.的程序员1 小时前
JVM 运行时数据区详解:内存模型与对象生命周期全景解析
java·jvm·运行时数据区·内存模型·对象生命周期
发愤图强的羔羊2 小时前
Docker 搭建 SVN 服务器
docker