完美解决:Docker部署SpringBoot项目后图片无法访问和上传解决办法!
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
以前使用FTP在Linux中使用java -jar xxx.jar部署SpringBoot项目时,由于在项目中指定了主机文件存放路径映射,可以直接访问服务器的文件。
但是最近入坑Docker,将SpringBoot项目加载成镜像后部署在Docker中运行,但是出现了一个问题,就是Docker无法识别宿主机的文件路径,所以部署在Docker容器里的web项目也就无法访问原来已经上传好的图片和新上传的图片,弄了一个晚上终于解决了这个问题!按照步骤一步一步操作可完美解决这个问题!
一、解决办法
1. 把容器中图片存放目录挂载到宿主机上图片存放目录
一般两个路径设置为相同的就不会出现问题
# 参数解释:
# 挂载目录-v {宿主机的文件存放目录绝对路径}:{容器中的文件存放目录绝对路径}
# 端口映射-p {宿主机的端口}:{容器暴露的端口}
# 容器名--name {容器名字}
docker run -p 8080:8080 -v /usr/turing/test/static/img:/usr/turing/test/static/img --name turing-jpa turing-jpa
2. 把SpringBoot项目部署到Docker中运行
3. 将宿主机上的文件拷贝到容器中(路径要匹配挂载规则)
假设宿主机上的图片保存在/usr/turing/img/下,那么文件也要拷贝到容器中的/usr/turing/img/下
# docker cp {宿主机文件存放目录} {容器ID}:{容器中文件存放目录}
docker cp /usr/turing/img/ e0e149badb6e:/usr/turing/img/
然后就可以访问图片了,上传图片时也需要遵循挂载规则,保存文件目录的绝对路径要和容器的文件存放目录绝对路径最好保持一致,一定不会出错!
二、IDEA操作Docker挂载目录
最后放上一张更新图片成功的图!
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献2条内容
所有评论(0)