当前位置:首页 » 《关于电脑》 » 正文

2024年最新 Docker 安装 Nginx 容器 (完整详细版) 2025年最新

27 人参与  2024年12月22日 14:00  分类 : 《关于电脑》  评论

点击全文阅读


Docker 安装 Nginx 容器 (完整详细版)

本文详细介绍了Docker的安装步骤,包括如何从官方镜像仓库下载Nginx镜像,如何检查已下载的镜像。接着,讲解了创建Nginx配置文件的必要性,并提供了创建挂载目录的命令。然后,展示了如何创建并运行Nginx容器,包括端口映射、配置文件挂载和日志目录设置。最后,提到了如何重启容器以应用修改,并给出了结果检测的方法。

说明:

Docker如果想安装软件 , 必须先到 Docker 镜像仓库下载镜像。如果能从docker拉取nginx镜像的,可以直接拉取,拉取不了的,我这里提供国内可用的,截至2024年12月12日为nginx最新的镜像

docker官方的镜像拉取命令:

docker pull nginx

国内可用的:

docker pull registry.cn-shenzhen.aliyuncs.com/amgs/nginx:latest

检查当前所有Docker下载的镜像

docker images

创建Nginx配置文件

启动前需要先创建Nginx外部挂载的配置文件( /home/nginx/conf/nginx.conf)
之所以要先创建 , 是因为Nginx本身容器只存在/etc/nginx 目录 , 本身就不创建 nginx.conf 文件
当服务器和容器都不存在 nginx.conf 文件时, 执行启动命令的时候 docker会将nginx.conf 作为目录创建 , 这并不是我们想要的结果

创建挂载目录
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/conf/conf.d
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html

容器中的nginx.conf文件和conf.d文件夹复制到宿主机

#生成容器
docker run --name nginx -p 9001:80 -d nginx
#将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.con
#将容器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 rm nginx或者以容器id方式关闭容器
#找到nginx对应的容器id
docker ps -a
#关闭该容器
docker stop nginx
#删除该容器
docker rm nginx
#删除正在运行的nginx容器
docker rm -f nginx

Docker 创建Nginx容器

docker run \-p 80: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

如果需要绑定ssl的需要把443的端口映射出来

docker run \-p 80:80 \-p 443:443\--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

我自己的实际情况映射了别的目录,如下
-v /home/files:/etc/nginx/html/htmlstatic

docker run -p 443:443 -p 80: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 -v /home/files:/etc/nginx/html/htmlstatic -d nginx:latest

ssl的nginx的配置,给我自己项目中的应用示例:

[root@VM-4-20-centos conf.d]# cat default.conf_ssl_back server {    listen       443 ssl;    listen  [::]:443 ssl;    server_name  www.test.com;    #access_log  /var/log/nginx/host.access.log  main;    ssl_certificate /home/www.test.com_nginx/www.test.com_bundle.pem; # 证书文件路径    ssl_certificate_key /home/www.test.com_nginx/www.test.com.key; # 私钥文件路径    # 可选的 SSL 配置,增强安全性    ssl_protocols TLSv1.2 TLSv1.3; # 仅启用 TLS 1.2 和 1.3    ssl_prefer_server_ciphers on; # 使用服务器优先的密码套件    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256'; # 推荐的密码套件     location /htmlstatic {        alias /etc/nginx/html/htmlstatic; # 设置别名,指向容器内的目录        autoindex on; # 开启目录浏览    }    location /jtoService {       rewrite ^/jtoService/(.*)$ /$1 break;       proxy_pass http://127.0.0.1:8991;     }     location /app {rewrite ^/app/(.*)$ /$1 break;        proxy_pass   http://127.0.0.1:8990;  # 将请求转发到本机的1234端口        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    }    location /manage {        proxy_pass   http://127.0.0.1:8090;  # 将请求转发到本机的1234端口        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            }     location / {        root   /usr/share/nginx/html;        index  index.html index.htm;    }    #error_page  404              /404.html;    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/share/nginx/html;    }}[root@VM-4-20-centos conf.d]# 

其中需要把ssl证书放在docker nginx 容器里面 /home/www.test.com_nginx/ 目录下
例如,如果证书在宿主机的文件夹为www.test.com_nginx
需要把目录切换到www.test.com_nginx当前目录下

docker cp www.test.com_nginx/  nginx:/home

在这里引用了大佬的文章,只是在我自己使用上做了总结


点击全文阅读


本文链接:http://zhangshiyu.com/post/205187.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 大麦的小说《白月光归来,傅总傻眼了》全文阅读
  • 主角墨默陆雨馨小说爆款《雨夜我接到最后一份订单从小花园》完整版小说
  • 《你带外室逃婚,我嫁给小叔你哭什么?》by相宜如愿(齐疏月萧沉厌)未删节免费阅读
  • 离婚后,霸总倒贴成宠妻狂魔全文(沈时微顾泽越)全文免费阅读无弹窗大结局_(离婚后,霸总倒贴成宠妻狂魔全文)沈时微顾泽越最新章节列表_笔趣阁(离婚后,霸总倒贴成宠妻狂魔全文) -
  • 强烈推荐《假千金又如何?重生让全侯府火葬场》夏芷歆萧旭谦在线阅读
  • 一不小心,陛下他下场帮我宅斗了小说(连载文)-崔令窈裴玠无广告阅读
  • 暴雨来袭,我将白眼狼父子拒之门外全本小说(暴雨来袭,我将白眼狼父子拒之门外)全文阅读
  • 暴雨来袭,我将白眼狼父子拒之门外小说(连载文)-周敏柳慧无广告阅读
  • 主角是姜软软段辞的小说-《算我求你,爱我》完整章节阅读
  • 安南顾之屿《天灾末世,她囤满物资后杀疯了全文阅读》完整版免费在线阅读_(安南顾之屿)全集免费阅读 -
  • 天灾末世,她囤满物资后杀疯了已完结(安南顾之屿)全文免费阅读无弹窗大结局_(安南顾之屿)天灾末世,她囤满物资后杀疯了已完结免费阅读全文最新章节列表_笔趣阁(天灾末世,她囤满物资后杀疯了已完结) -
  • 书荒宝藏文《魏安蕊方晏清》魏安蕊方晏清(小说全文阅读无弹窗)全文免费阅读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1