docker 部署 NginX

命令

拉取nginx镜像

docker pull nginx:1.24

先简单启动一个镜像,获取默认配置文件,以便数据卷挂载,当然nginx大师可以选择手撸一个 nginx.conf 等配置文件

docker run --name nginx -p 80:80 -d nginx

创建本地目录

mkdir -p /data/nginx/conf
mkdir -p /data/nginx/html
mkdir -p /data/nginx/logs

将容器中的配置文件拷贝到宿主机

docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /data/nginx/html

将容器停止、删除

docker stop nginx
docker rm nginx

重新启动带宿主机数据卷的容器 方便日后修改配置文件且容器删除后配置文件不会丢失

docker run -d \
-p 80:80 \
--name nginx \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/nginx/logs:/var/log/nginx \
nginx:1.24

问题

遇到的问题是,配置文件反向代理宿主机的8080端口时,通过

proxy_pass http://localhost:8080;

无法调用到宿主机的8080服务。

因为此时的容器的网络模式是默认的桥接模式,与宿主机网络环境隔离。localhost和127.0.0.1都是容器内部网络回环,无法调用到宿主机的8080端口。

可以通过调用宿主机的IP地址加端口号调用本地服务。或者启动时设置网络模式为主机模式(host),此时容器使用宿主机的网络环境,那么容器的localhost与宿主机一致。

相关推荐
我从不骗人1 小时前
Windows系统安装Docker Desktop
windows·docker·容器
DZSpace3 小时前
将 Docker 数据迁移到新磁盘:详细操作指南
运维·docker·容器
代码代码快快显灵3 小时前
Docker
docker·容器·eureka
清风xu来3 小时前
Docker 环境中搭建 Redis 哨兵模式集群的步骤与问题解决
redis·docker·容器·sentinel·redis哨兵
π大星星️5 小时前
haproxy+nginx负载均衡实验
linux·运维·服务器·笔记·nginx·负载均衡
Elastic 中国社区官方博客5 小时前
Elasticsearch:减少 Elastic 容器镜像中的 CVE(常见的漏洞和暴露)
大数据·数据库·elasticsearch·搜索引擎·docker·云原生·全文检索
icepage7 小时前
中高级运维工程师运维面试题(十一)之 Docker
运维·docker·容器
xcLeigh7 小时前
asp.net core框架搭建4-部署IIS/Nginx/Docker
nginx·docker·asp.net
视觉语言导航7 小时前
技术实践︱利用Docker快速体验Matterport3DSimulator!让视觉语言导航(VLN)任务入门再无门槛!
人工智能·docker·具身智能
小冯的编程学习之路7 小时前
【Docker】:Docker容器使用
运维·docker·容器