将Docker中nginx静态资源目录映射到宿主机的某个目录及配置文件映射到宿主机

在Docker中运行Nginx时,可以通过-v或--volume参数将Nginx容器内的静态资源目录映射到宿主机的某个目录。这样,你就可以在宿主机上直接管理和修改这些静态资源,而无需进入容器内部。以下是具体的操作步骤:

一、准备宿主机目录

首先,在宿主机上创建一个目录,用于存放Nginx的静态资源。例如,可以创建一个名为nginx-static的目录:

mkdir -p /path/to/nginx-static

其中,/path/to/是自定义的路径,你可以根据实际情况进行调整。

二、启动Nginx容器并映射静态资源目录

使用docker run命令启动一个新的Nginx容器,并通过-v参数将宿主机上的nginx-static目录映射到容器内的静态资源目录(通常是/usr/share/nginx/html)。命令如下:

docker run -d -p 8002:80 --name my-nginx \
-v /path/to/nginx-static:/usr/share/nginx/html \
nginx:1.12.2

这条命令做了以下几件事情:

  • -d:以守护进程模式运行容器。
  • -p 8002:80:将宿主机的8002端口映射到容器的80端口,以便通过浏览器访问Nginx服务。
  • --name my-nginx:为容器指定一个名称(my-nginx),方便后续管理。
  • -v /path/to/nginx-static:/usr/share/nginx/html:将宿主机上的nginx-static目录映射到容器内的/usr/share/nginx/html目录,这是Nginx默认的静态资源目录。

三、验证映射是否成功

启动容器后,你可以在宿主机上的nginx-static目录中放置一些静态资源(如HTML、CSS、JavaScript文件等)。然后,通过浏览器访问宿主机的IP地址或域名(如果配置了DNS解析),你应该能够看到这些静态资源被Nginx成功提供。

四、注意事项

确保宿主机上的nginx-static目录具有正确的权限和所有权,以便Nginx容器能够访问其中的文件。

如果Nginx容器已经运行,并且你想要将静态资源目录映射到另一个宿主机目录,你需要先停止并删除现有的容器,然后按照上述步骤重新创建一个新的容器。

如果你想在容器内修改Nginx的配置文件(如nginx.conf),你也可以通过类似的方式将配置文件映射到宿主机的某个目录,并在该目录中编辑配置文件。然后,通过重启Nginx容器或重新加载Nginx配置来使更改生效。

通过以上步骤,你就可以将Docker中Nginx的静态资源目录映射到宿主机的某个目录,并在宿主机上直接管理和修改这些资源了。

五、将Docker中nginx静态资源目录映射到宿主机的某个目录及配置文件映射到宿主机:

docker run -d -p 8003:80 --name my-nginx -v /home/sam/nginx:/usr/share/nginx/html -v /home/sam/conf/nginx.conf:/etc/nginx/nginx.conf nginx:1.12.2

修改映射后的配置文件后记得重启docker服务,比如设置301跳转,以nginx 1.12.2为例,nginx.conf修改如下:

    server {
        listen 80;
        server_name yourdomain.com;  # 替换为你的域名
    
        # 其他配置...
    
        # 实现特定路径的301重定向
        location /abc {
            return 301  http://www.xxxxxxxxxx.com;
        }

        location / {
            # 默认配置,例如代理传递、静态文件服务等
            # 例如,如果你想让 Nginx 返回一个简单的 "Hello, World!" 页面,可以这样配置:
            root /usr/share/nginx/html;
            index index.html;
        }
    
        # 其他 location 块配置...
    }
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen 80;
        server_name yourdomain.com;  # 替换为你的域名
    
        # 其他配置...
    
        # 实现特定路径的301重定向
        location /abc {
            return 301  http://www.xxxxxxxxxx.com;
        }

        location / {
            # 默认配置,例如代理传递、静态文件服务等
            # 例如,如果你想让 Nginx 返回一个简单的 "Hello, World!" 页面,可以这样配置:
            root /usr/share/nginx/html;
            index index.html;
        }
    
        # 其他 location 块配置...
    }

    include /etc/nginx/conf.d/*.conf;
}

注意以上配置内容。

重启docker中nginx:

[root@localhost home]# docker ps
CONTAINER ID   IMAGE                       COMMAND                   CREATED          STATUS             PORTS                                            NAMES
22183dc1c4ce   nginx:1.12.2                "nginx -g 'daemon of…"   43 minutes ago   Up 3 minutes       0.0.0.0:8001->80/tcp, :::8001->80/tcp            my-nginx-v
[root@localhost home]# docker restart my-nginx-v
my-nginx-v

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/916335.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot框架:构建符合工程认证的计算机课程

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

【ubuntu16.04】机器人学习笔记遇到的问题及解决办法:仿真小海龟

18版本的后面会出问题,避免万一我还是用了之前的16版本,虽然还没有解决粘贴的问题,但是安装ros很成功 可参考该文章博主讲的很详细,成功画出海龟 最后要把鼠标停在第三个终端,再去点击键盘,海龟才会动哦

Unity学习---IL2CPP打包时可能遇到的问题

写这篇主要是怕自己之后打包的时候出问题不知道怎么搞,所以记录一下。 问题一:类型裁剪 IL2CPP打包后会自动对Unity工程的dll进行裁剪,将代码中没有引用到的类型裁剪掉。特别是通过反射等方式调用一些类的时候,很容易出问题。 …

批量将MySQL中的MyISAM引擎,改成InnoDB引擎

一、InnoDB和MyISAM的区别 MySQL中InnoDB和MyISAM是两种常用的存储引擎,具有以下不同的特点: 序号InnoDBMyISAM说明事务支持支持不支持InnoDB可以处理更复杂的业务逻辑,而MyISAM在处理大量并发写入时可能会遇到问题‌锁定机制行级锁定表级锁…

认证鉴权框架SpringSecurity-1--概念和原理篇

1、基本概念 Spring Security 是一个强大且高度可定制的框架,用于构建安全的 Java 应用程序。它是 Spring 生态系统的一部分,提供了全面的安全解决方案,包括认证、授权、CSRF防护、会话管理等功能。 2、认证、授权和鉴权 (1&am…

C++11新特性(二)

目录 一、C11的{} 1.初始化列表 2.initializer_list 二、可变参数模版 1.语法与原理 2.包扩展 3.empalce接口 三、新的类功能 四、lambda 1.语法 2.捕捉列表 3.原理 五、句装器 1.function 2.bind 一、C11的{} 1.初始化列表 C11以后想统⼀初始化⽅式&#xff0…

Nginx配置自带的stub状态实现活动监控指标

场景 为了确保应用以最佳性能和精度运行,需要清晰地了解有关其活动的监控指标。 NGINX 提供了多种监控选项,例如 stub 状态。 注: 博客:霸道流氓气质-CSDN博客 实现 启用 NGINX stub 状态 启用 NGINX HTTP 服务器内 locati…

RabbitMQ-死信队列(golang)

1、概念 死信(Dead Letter),字面上可以理解为未被消费者成功消费的信息,正常来说,生产者将消息放入到队列中,消费者从队列获取消息,并进行处理,但是由于某种原因,队列中的…

Redisson的可重入锁

初始状态: 表示系统或资源在没有线程持有锁的情况下的状态,任何线程都可以尝试获取锁。 线程 1 获得锁: 线程 1 首次获取了锁并进入受保护的代码区域。 线程 1 再次请求锁: 在持有锁的情况下,线程 1 再次请求锁&a…

java程序打包及执行 jar命令及运行jar文件

java程序打包及执行 jar命令及运行jar文件 打包命令: 安装完成jdk之后采用 jar命令进行打包 jar -cvfe ddd.jar -C bin/ddd.java 打包 ddd.java 文件 jar -cvfe dddd.jar -C . 注意 -C 后面的点. 表示当前目录下所有 如图: 运行jar 文件 java -class…

视频孪生技术在金融银行网点场景中的应用价值

作为国民经济重要的基础行业,金融行业在高速发展的同时衍生出业务纠纷、安全防范、职能管理等诸多问题,对安全防范和监督管理提出了更高的要求。因此,如何能更好的利用视频监控系统价值,让管理人员更简便的浏览监控视频、更快速的…

SpringCloud OpenFeign负载均衡远程调用 跨服务调用 连接池优化

介绍 Spring Cloud OpenFeign 是 Spring Cloud 的一部分,提供了一种声明式的 HTTP 客户端方式来简化服务间的通信。通过 OpenFeign,开发者可以像调用本地方法一样,轻松地调用远程服务,而不需要手动处理 HTTP 请求、响应和连接等底…

Go语言实现用户登录Web应用

文章目录 1. Go语言Web框架1.1 框架比较1.2 安装Gin框架 2. 实现用户登录功能2.1 创建项目目录2.2 打开项目目录2.3 创建登录Go程序2.4 创建模板页面2.4.1 登录页面2.4.2 登录成功页面2.4.3 登录失败页面 3. 测试用户登录项目3.1 运行登录主程序3.2 访问登录页面3.3 演示登录成…

2024算法基础公选课练习三(DFS1)(1)

一、前言 dfs是初学者的重点,也是难点,这次的有些题目也不好写。题目有点多,因此分成(1)和(2) 二、题目总览 三、具体题目 3.1 问题 A: 贪心——排队接水 思路 贪心,把接水时间短…

数据库参数备份

MySQL #!/bin/bash # 获取当前日期和时间的时间戳 TIMESTAMP$(date "%Y%m%d-%H%M%S")# 0、创建目录 mkdir /tmp/parameter_$TIMESTAMP/# 1、获取所有命名空间 echo "1、获取所有命名空间" NAMESPACES$(kubectl get ns | grep qfusion- | grep -v qfusion-…

Kconfig 知道的!与不知道的?

1 Kconfig 的重要性 Kconfig 是 Linux 内核配置系统的重要工具,它通过定义和管理配置选项,使开发者能够灵活地调整内核模块。无论是精简内核以适配嵌入式系统,还是为桌面应用扩展功能,Kconfig 都在其中扮演着关键角色。本文将带领…

CCI3.0-HQ:用于预训练大型语言模型的高质量大规模中文数据集

摘要 我们介绍了 CCI3.0-HQ,它是中文语料库互联网 3.0(CCI3.0)的一个高质量500GB子集,采用新颖的两阶段混合过滤管道开发,显著提高了数据质量。为了评估其有效性,我们在不同数据集的100B tokens上从头开始…

rhcsa笔记二

普通文件的创建 touch命令的使用 touch 文件名 (文件路径) linux不是用后缀区分文件类型的,而是用ll出现的第一个字符区分文件类型的 -:普通文件 d:目录文件 [rootserver ~]# stat /etc/hostname 文件:/etc/hos…

微澜:用 OceanBase 搭建基于知识图谱的实时资讯流的应用实践

本文作者: 北京深鉴智源科技有限公司架构师 郑荣凯 本文整理自北京深鉴智源科技有限公司架构师郑荣凯,在《深入浅出 OceanBase 第四期》的分享。 知识图谱是一项综合性的系统工程,需要在在各种应用场景中向用户展示经过分页的一度关系。 微…

探索Python文档自动化的奥秘:`python-docx`库全解析

文章目录 探索Python文档自动化的奥秘:python-docx库全解析1. 背景:为何选择python-docx?2. python-docx是什么?3. 如何安装python-docx?4. 简单库函数使用方法创建文档添加段落添加标题添加表格插入图片 5. 应用场景自…