我收到以下错误:
无法导出图像:无法创建图像:无法获取图层 sha256:xxxxxxxxxxxxx:图层不存在
Dockerfile:
FROM openjdk:8
COPY ./lib/ /usr/src/app/BOOT-INF/lib/
COPY ./lib/entities-1.0-SNAPSHOT.jar /usr/src/app/BOOT-INF/lib/entities-1.0-SNAPSHOT.jar
COPY ./app/ /usr/src/app/
WORKDIR /usr/src
CMD ["java", "-cp", "app/", "org.springframework.boot.loader.JarLauncher"]
Run Code Online (Sandbox Code Playgroud)
输出:
Step 3/6 : COPY ./lib/entities-1.0-SNAPSHOT.jar /usr/src/entities-1.0-SNAPSHOT.jar
---> 3acb1f6c911a
Step 4/6 : COPY ./app.jar /usr/src/app.jar
failed to export image: failed to create image: failed to get layer sha256:33a94c44f7804ae3f57b9e72f94323c15cef7267be7eb95d90d2a1673c4b33b9: layer does not exist
Run Code Online (Sandbox Code Playgroud)
第二次运行总是有帮助 - 错误消失。我正在构建多个不同的图像(不同的 jar),在不同的目录中使用不同的 Dockerfile。但是 Dockerfiles 的内容是一样的。
我认为添加后出现此错误:
COPY ./lib/entities-1.0-SNAPSHOT.jar /usr/src/app/BOOT-INF/lib/entities-1.0-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)
我不想删除那一行:app 和实体是我的库。如果我删除行 - 我将得到一个第三方库(50mb)与实体(2mb)合并的层。
我必须在本地机器上运行 43 个容器。
每次启动我都有警告
WARNING: Connection pool is full, discarding connection: localhost
Run Code Online (Sandbox Code Playgroud)
警告不要阻止我的工作
但有时在容器启动时,我在下面遇到多个错误
Filesystem is not responding
Filesystem mounted at /var/lib/docker/overlay/{hash}/merged is not responding
Run Code Online (Sandbox Code Playgroud)
他们中的很多人在我的 manjaro KDE 中作为通知推送这些错误阻止了我的工作,容器不工作。只有重新启动才能帮助我。
我会提供您需要的任何其他信息
文件系统是 ext4 存储驱动程序:overlay2
docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 16 10 3.82GB 1.198GB (31%)
Containers 43 43 1.138MB 0B (0%)
Local Volumes 20 10 1.947GB 955.4MB (49%)
Build Cache 0 0 0B 0B
Run Code Online (Sandbox Code Playgroud)
sudo docker network ls
NETWORK ID NAME DRIVER SCOPE
3e046a2f4038 bridge bridge local
8aadcba2673b …Run Code Online (Sandbox Code Playgroud)