网站首页 > 技术文章 正文
nginx 是一款高性能的 web 服务器,支持反向代理、负载均衡、静态资源管理,非常实用。
使用 docker 安装 nginx 非常简便,不仅可以快速启动服务,因为容器特性,有良好的隔离性,还方便管理。
本文通过实战方式来介绍 docker 安装 nginx,并做一些实用的配置。
前面的文章详细介绍了 docker 的基本使用,不太了解这块内容的可以参考这些文章。
一、下载镜像
使用命令 docker pull nginx 来拉取最新的 nginx 镜像,如下,标签 latest 表示使用最新版本。
二、创建 nginx 配置文件
为了可以保存备份和后期迁移,需要持久化配置,所以要在宿主机创建下面3个挂载目录:
# 创建挂载目录
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html
将容器中的 nginx.conf 文件和 conf.d 文件夹复制到宿主机,通过下面的命令实现:
# 生成容器
docker run --name nginx -p 6020:6020 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
下面是实操过程:
三、启动 nginx 容器
使用 docker ps 命令查看容器,先 docker stop nginx 停止,然后把已创建的删除 docker rm nginx:
启动容器,多行模式:
docker run \
-p 6021:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
单行模式:
docker run -p 6021:80 --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d nginx:latest
命令参数说明:
- -p 6021:80:将容器的 80 端口映射到主机的 6021 端口
- –name nginx:为容器指定一个名称,本次指定为名为 nginx。通过指定名称,可以使用容器名称代替容器 ID 来操作容器,如启动停止容器、设置容器的环境变量、来在多个容器之间建立网络连接。如果省略 --name 参数,则 Docker 会自动为容器分配一个名称。
- -v:挂载文件,分别是 nginx.conf 配置文件、nginx 配置文件、nginx 日志文件、nginx 内容
- nginx:latest:指定 nginx 运行版本
- \:shell 命令换行
但是这样启动,当 linux 服务器重启时,nginx 就被关闭了,应该加参数 --restart=always 来保证容器在任何情况下都应自动重启:
docker run -p 6021:80 --name ftp-nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d --restart=always nginx:latest
四、测试
浏览器访问:http://192.168.1.200:6021/
测试修改内容,然后重启:
浏览器刷新,可以看到内容已经变了:
五、如何让 nginx 访问图片
nginx 默认访问图片会403:
将 user nginx 改为 user root 后重启 nginx,再次访问正常:
六、将 nginx 的内容目录挂载到 ftp 目录
本次使用 ftp 用户 ftpu1 下的目录 /home/ftp/ftpu1/nginx-html。
docker run -p 6021:80 --name nginx-ftp -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/ftp/ftpu1/nginx-html:/usr/share/nginx/html -d --restart=always nginx:latest
浏览器访问图片:
当上传图片到目录 /home/ftp/ftpu1/nginx-html 就可以通过地址访问了。
猜你喜欢
- 2025-01-15 IT运维面试问题总结-运维(Ceph、Docker、Apache、Nginx等
- 2025-01-15 用Nginx反向代理Docker化你的IP地理定位服务
- 2025-01-15 zabbix通过自定义脚本监控Linux服务、docker nginx容器,图文详细
- 2025-01-15 将.NET Core 微服务和 Kubernetes 、 NGINX、Docker进行部署集成
- 2025-01-15 docker环境的nginx,配置了一个反向代理后端服务,访问 404,解决
- 2025-01-15 Nginx Proxy Manager - Docker 建站最佳伴侣
- 2025-01-15 Docker实战-使用NGINX实现4层的负载均衡
- 2025-01-15 Nginx日志切割方法(包含docker容器中nginx日志的切割)
- 2025-01-15 docker安装nginx搭建简单文件共享服务
- 2025-01-15 Docker部署web服务器之Nginx与PHP联合篇(三)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)