docker部署springboot 静态资源 404解决

docker部署springboot 静态资源 404解决

原因:

docker环境与服务器文件目录隔离,无法直接访问服务器目录的静态资源,需要做目录挂载

挂载

含义

挂载(Mount)​ 是计算机领域中的一个术语,通常用于描述将某个存储资源(如文件、目录、设备等)连接到系统的一个指定路径,使得该资源的内容可以通过该路径访问。在 Docker 中,挂载通常是指将主机(Host)上的文件或目录连接到容器内部的一个路径,从而实现主机和容器之间的文件共享。

作用

​数据共享

挂载允许主机和容器之间共享文件或目录。
例如:将主机的配置文件挂载到容器中,容器可以直接使用这些配置。

数据持久化

容器本身是临时的,容器内的数据会随着容器的删除而丢失。
通过挂载,可以将容器内的数据保存到主机上,从而实现持久化。

灵活性

可以动态地将不同的文件或目录挂载到容器中,而无需修改容器镜像。

步骤

  1. 使用 -v 或 --volume 选项
    -v 或 --volume 选项允许你将主机上的文件或目录挂载到容器内的指定路径。
    docker run -v /host/path:/container/path image_name
    ● /host/path:主机上的文件或目录路径。
    ● /container/path:容器内的挂载路径。
    ● image_name:Docker 镜像名称。
    示例:
docker run -v /home/user/data:/app/data my_image

这个命令将主机上的 /home/user/data 目录挂载到容器内的 /app/data 目录。
2. 使用 --mount 选项
–mount 选项提供了更详细的挂载配置,语法如下:
docker run --mount type=bind,source=/host/path,target=/container/path image_name
● type=bind:指定挂载类型为绑定挂载。
● source=/host/path:主机上的文件或目录路径。
● target=/container/path:容器内的挂载路径。
示例:

`docker run --mount type=bind,source=/home/user/data,target=/app/data` my_image
  1. 使用 Docker Compose
    如果你使用 Docker Compose 来管理容器,可以在 docker-compose.yml 文件中定义挂载:
version: '3'
services:
  my_service:
    image: my_image
    volumes:
      - /host/path:/container/path

示例:

services:
  # Spring Boot 应用
  app:
    image: pikimbi-backend:v1.0.0
    volumes:
      - /www/wwwroot/imgPikimbi/user:/app/www/wwwroot/imgPikimbi/user

也就是访问/app/www/wwwroot/imgPikimbi/user就能访问到/www/wwwroot/imgPikimbi/user

【注意】必须需要从容器根目录开始挂载。 即:/app/xxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值