我正在尝试构建一个新的docker映像。这就是我的 Dockerfile 的样子
FROM docker-standard-all/dev_env_g3_g5:latest
WORKDIR /root/
COPY controller.pom.xml .
COPY docker_settings.xml .
COPY stage.sh .
RUN mkdir ~/.m2
RUN ln -sf ~/docker_settings.xml ~/.m2/settings.xml
# Initialize Maven repository
RUN mvn dependency:resolve -f controller.pom.xml -q
ENTRYPOINT ["./stage.sh"]
构建码头工人之后
docker build -t bc/controller-in-docker:1.0.2" "${PATH}"
当我表演时
docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
bc/controller-in-docker 1.0.2 a32e212bc0f7 2 hours ago 2.41GB
<none> <none> f4e68f5a2720 2 hours ago 2.41GB
<none> <none> b71751242efd 2 hours ago 2.4GB
<none> <none> 26e3a086889c 2 hours ago 2.4GB
<none> <none> 4acf1759940a 2 hours ago 2.4GB
<none> <none> 0d66510e6a67 2 hours ago 2.4GB
<none> <none> adc5c7038a4b 2 hours ago 2.4GB
<none> <none> a994c54e00af 2 hours ago 2.4GB
docker-standard-all/dev_env_g3_g5 1.17.4 6a83d123f497 6 months ago 2.4GB
经过一番谷歌搜索和堆栈溢出,我才意识到:容器不是悬挂的容器。事实上,它们似乎是在Dockerfile中运行COPY,RUN等命令后形成的。
问题:
我的新 docker 映像的总体大小是多少?我的每个 none:none 容器似乎从终端输出中占用 ~2.41GB。它们总共加起来为 2.4 * 7 GB
我可以删除这些无:无图像吗?他们肯定不是悬而未决的图像。但是它们每个占用2.4 GB(尽管不确定(,并且还混淆了与之相关的名称。
在构建新的 docker 映像时是否可以避免这些 none:none 映像?对 Dockerfile 有什么建议/修改以避免它们吗?
谢谢
docker images -a 将始终显示大量"无"映像,因为它显示了每个映像的每一层。例如,如果您运行
docker history docker-standard-all/dev_env_g3_g5:1.17.4,
您应该会看到所有中间层 ID。这些包含在docker images -a
输出中,无法删除。
要删除所有悬而未决的 Docker 映像,请执行以下操作:
sudo docker rmi $(sudo docker images -f “dangling=true” -q)
如果以根身份运行,则省略"sudo">
docker rmi $(docker images -f “dangling=true” -q)