gpt4 book ai didi

docker - docker容器上传文件

转载 作者:行者123 更新时间:2023-12-02 04:23:37 24 4
gpt4 key购买 nike

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

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 .. 命令或 compose 文件中。

解决方案

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

docker run -d --name file-upload-service -v /home/storage:/home/storage -p 9104:9104 file-upload-service:latest
上述命令中的

-v 标志告诉 docker 挂载主机的 /home/storage 目录(: 的左侧) ) 到容器的 /home/storage 目录(: 右侧)。您可以根据您的方便更改这些目录。

关于docker - docker容器上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50133244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com