我想使用安装在容器上的卷,但在尝试运行时会抛出下一个错误:
docker:来自守护进程的错误响应:创建挂载源路径“/var/skeeter/templates”时出错:mkdir /var/skeeter:只读文件系统。
这是我的 Dockerfile:
FROM maven:3-jdk-13-alpine
RUN mkdir -p /var/container/skeeter/templates
WORKDIR /project
ADD ./target/skeeter-0.0.1-SNAPSHOT.jar skeeter-0.0.1-SNAPSHOT.jar
EXPOSE 8080
CMD java -jar skeeter-0.0.1-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)
这是运行命令:
docker run -t -p 8080:8080 -v /var/skeeter/templates:/var/container/skeeter/templates --name skeeter-docker-container skeeter-docker-image:最新
这是我检查目录权限时的 CMD 输出:
ls -l /var/skeeter/
total 4 drwxrwxrwx 2 root root 4096 ago 11 16:45 templates
ls -ld /var/skeeter/
drwxrwxrwx 3 root root 4096 ago 11 16:45 /var/skeeter/
Run Code Online (Sandbox Code Playgroud)
更新:我创建了一个新卷并在 -v 参数中使用了它的名称并且它运行了,但是 java 应用程序无法在目录中找到文件