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

相关推荐
一只乔哇噻2 分钟前
java后端工程师进修ing(研一版 || day41)
java·开发语言·学习·算法
User_芊芊君子20 分钟前
【Java】设计模式——单例、工厂、代理模式
java·设计模式·代理模式
IT利刃出鞘23 分钟前
Docker--宿主机和容器相互拷贝文件
运维·docker·容器
2301_8035545229 分钟前
正向代理,反向代理,负载均衡还有nginx
java·nginx·负载均衡
要开心吖ZSH30 分钟前
软件设计师备考-(十六)数据结构及算法应用(重要)
java·数据结构·算法·软考·软件设计师
向上的车轮38 分钟前
基于Java Spring Boot的云原生TodoList Demo 项目,验证云原生核心特性
java·spring boot·云原生
程序员清风41 分钟前
快手一面:为什么要求用Static来修饰ThreadLocal变量?
java·后端·面试
逍遥德41 分钟前
Java8 Comparator接口 和 List Steam 排序使用案例
java·spring boot·list·排序算法
前行的小黑炭1 小时前
Android :如何快速让布局适配手机和平板?
android·java·kotlin
_BugMan2 小时前
【IDEA】干活?一个IDEA即可,集成开发平台打造攻略
java·ide·intellij-idea