以前使用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