赞
踩
此时处在 /home/ubuntu/app
目录下,并且在该目录下有一个 jenkins-0.0.1-SNAPSHOT.jar。
我在 /home/ubuntu/app
目录下执行了 docker 容器运行命令:
# 映射 8859 端口
# 容器名为 jenkins-demo
# 将 jenkins-0.0.1-SNAPSHOT.jar 复制到容器内的 /app.jar
# 以 jdk11 为容器镜像
# 执行命令 java -jar /app.jar 运行 java 程序
docker run -dp 8859:8859 \
--name jenkins-demo \
-v jenkins-0.0.1-SNAPSHOT.jar:/app.jar \
openjdk:11 \
java -jar /app.jar
但遗憾的是,当我执行命令后,并没有运行起来。
我们先查看一下日志:
提示错误信息:Error: Invalid or corrupt jarfile /app.jar
该错误表示的是 jar 文件无效或损坏,于是我开始考虑是不是 -v
挂载有问题。
于是我使用 docker inspect jenkins-demo
查看该容器信息,特别是挂载情况。然后查看 Mounts
下的信息:
我发现 jenkins-0.0.1-SNAPSHOT.jar
成了数据卷名称,/app.jar
是容器内的目录。
这时候我才突然想起来,如果在 -v
时直接写个名称,那么 docker 会将它识别为是一个数据卷名称而不是本地文件或目录名。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。