[英]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.