繁体   English   中英

通过Docker容器上传文件

[英]File Upload by docker container

我有一个Spring Boot应用程序。 Docker容器无权创建文件。

码头工人文件:

FROM openjdk:8-jdk-alpine

VOLUME /tmp

ADD /build/libs/file-upload-service-2.0.0.jar app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

映像构建命令:

docker build -t file-upload-service .

映像运行命令:

docker run -d --name file-upload-service -p 9104:9104 file-upload-service:latest

文件夹权限:

sudo chown -R  root:docker  /home/storage/

sudo chmod -R 777 /home/storage/

使用java -jar运行时,应用程序可以创建文件。

问题

您期望在Docker容器内的代码在主机的文件系统中找到文件。 一个Docker容器已完全包含(顾名思义)运行时环境,该运行时环境具有自己的文件系统,网络等。您无法从Docker容器直接访问主机的文件系统, 除非您在docker run ..命令中具有一些必要的配置(挂载) docker run ..或撰写文件。

您必须将卷/home/storage安装在docker容器中,才能从容器内的该位置读取/写入该位置。 为此,在更改主机(已经拥有)中的文件系统权限之后,请使用以下运行命令来启动容器:

docker run -d --name file-upload-service -v /home/storage:/home/storage -p 9104:9104 file-upload-service:latest

-v在上述命令标志告诉搬运工安装/home/storage主机的目录(左侧: )到/home/storage容器的目录(右侧: )。 您可以根据需要更改这些目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM