当前位置: 首页 > article >正文

将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


http://www.kler.cn/a/392871.html

相关文章:

  • Qt_day4_Qt_UI设计
  • Unity3D学习FPS游戏(12)敌人检测和攻击玩家
  • 「Mac玩转仓颉内测版7」入门篇7 - Cangjie控制结构(下)
  • 【mySql 语句使用】
  • 词嵌入方法(Word Embedding)
  • Xcode 16 使用 pod 命令报错解决方案
  • 大语言模型LLM综述
  • day13|C++重难点之 静态变量、全局变量、局部变量的区别,在内存上是怎么分布的、指针和引用的区别、C++内存分区
  • 想让三维模型与实时视频融合?这款软件值得一试
  • 大模型落地之ollama控制设备
  • 【MySQL】explain之type类型
  • Rust学习(四):作用域、所有权和生命周期:
  • MATLAB 使用教程 —— 命令窗口输入命令,工作区显示变量
  • Halcon深度学习之全局上下文异常值模型
  • 使用热冻结数据层生命周期优化在 Elastic Cloud 中存储日志的成本
  • python如何使用Rabbitmq
  • 从入门到了解C++系列-----内存管理 + 初步了解模板
  • CSS Modules是什么?
  • 【软件开发】Spring 面向切面编程(头歌作业)
  • 小程序租赁系统打造便捷租赁体验助力共享经济发展
  • HO-PEG-MACA中PEG的修饰使其提高了稳定性,有助于其在各种溶剂中保持稳定的性能。
  • 冗余连接2 hard题 代随C#写法
  • 【数据结构】10.线索二叉树
  • 【Verilog】case、casex、casez的区别
  • MySQL中的事务与锁
  • opencv入门学习总结