Docker挂载配置文件方式运行Nginx

ops/2025/1/13 6:06:13/

本文以centos7系统为例,演示Docker挂载配置文件的方式运行Nginx

如何在linux系统上安装Docker,详见 https://blog.csdn.net/qq_35148205/article/details/144915388

首先安装nginx

docker pull nginx  # 下载最新版本docker pull nginx:1.24.0 #跟上版本号,下载指定版本

运行镜像,生成容器 (以最新版的nginx镜像为例)

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

在宿主机上创建文件目录(宿主机就理解为我们的linux操作系统)

在指定路径下创建conf, html, log文件夹
在这里插入图片描述

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

docker cp mynginx:/etc/nginx/nginx.conf /你的文件目录/conf/
例:
docker cp mynginx:/etc/nginx/nginx.conf /usr/local/docker_config/conf/

容器中的html文件夹中的内容复制到宿主机

docker cp mynginx:/usr/share/nginx/html /你的文件目录/
例:
docker cp mynginx:/usr/share/nginx/html /usr/local/docker_config/

修改nginx.conf内容:

根据自己的项目需求,修改nginx.conf内容。参考配置文件信息:

# user nginx;worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.htm;try_files $uri $uri/ /index.html;}location /prod-api/ {             proxy_read_timeout 200s;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header    REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass   http://宿主机ip:端口/;    }       error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

在这里插入图片描述

删除刚才运行的nginx容器

docker ps -a # 列出所有的容器docker rm -f xxxId # 根据指定的CONTAINER ID 删除指定的容器 

在这里插入图片描述
最后,通过挂载自定义配置文件的方式,运行Nginx

docker run  \
-p 80:80 \
--name mynginx \
-v /你的文件目录/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /你的文件目录/log:/var/log/nginx \
-v /你的文件目录/html:/usr/share/nginx/html \
-d nginxdocker run  \
-p 80:80 \
--name mynginx \
-v /usr/local/docker_nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker_nginx/log:/var/log/nginx \
-v /usr/local/docker_nginx/html:/usr/share/nginx/html \
-d nginx

http://www.ppmy.cn/ops/149655.html

相关文章

增量导入和全量导入的区别是什么?

定义 全量导入:是指将数据源中的所有数据一次性全部导入到目标系统中。例如,一个电商公司要将其旧数据库中的所有商品信息(包括商品名称、价格、库存等)全部迁移到新的数据库系统中,这个过程就是全量导入。这种方式会覆…

游戏引擎学习第75天

仓库:https://gitee.com/mrxiao_com/2d_game_2 Blackboard: 处理楼梯通行 为了实现楼梯的平滑过渡和角色的移动控制,需要对楼梯区域的碰撞与玩家的运动方式进行优化。具体的处理方式和遇到的问题如下: 楼梯区域的过渡: 在三维空间中&#x…

05、Redis持久化

Redis是在内存中操作的,我们服器关闭重启机器后,正常是之前在redis中操作的数据都不存在了,但是实际上我们开机后重新启动redis服务,一样可以看到之前操作的数据。这是为什么呢? 我们在redis的安装目录下可以看到有一…

Reinforcement Learning (李宏毅) 机器学习 2023 Spring HW12 (Boss Baseline)

1. Reinforcement Learning (强化学习)简介 1.1 什么是强化学习 强化学习是一种机器学习方法,它训练智能体在环境中采取行动,以最大化累积奖励。智能体通过试错与环境互动,学习哪些行动会带来奖励(正反馈),哪些行动会导致惩罚(负反馈)。通过不断地学习和调整策略,…

论文阅读:Jailbreak Open-Sourced Large Language Models via Enforced Decoding

1.论文:通过强制解码破解开源大型语言模型【2024ACL】 1.提出问题: 安全对齐真的可以防止那些开源的大型语言模型被误用来成不希望的内容吗? 2.做出假设: 开源模型很容易被误导,在没有大量计算和精细 Prompt 下能够产生恶意内容…

leetcode 55. 跳跃游戏

题目如下 数据范围 示例 假设现有一数组的下标 abcdefgh。 其中 c d e 都能到达h由题目可知c num[c] > e即从c出发能到达d和e。 显然由于c d e都能到达h那么我们只需要判断从a出发能不能到达c d e就行。 因为c num[c] > e故只要能到达c就能到达d e。 所以我们可以…

web服务器快速目录搜索遍历工具推荐:Dirsearch

Dirsearch是一个快速而强大的目录搜索工具。Dirsearch是一个用于在web服务器上遍历目录的多功能工具。使用Python编写,支持多线程,自定义请求以及与各种字典的配合。 安装方法: 确保安装了Python 3: sudo apt install python3下…

命令模式详解与应用

命令模式(Command Pattern),是一种行为型设计模式。它将请求封装成对象,从而可以参数化其他对象,使得不同的请求、队列或者日志请求等操作都可以被实现,并且支持可撤销的操作。通过引入命令对象来解耦请求的…