我正在尝试构建新的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后
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
我可以删除这些none:none图像吗?他们肯定不会晃晃图像。但是它们每个都占用2.4 GB(虽然不确定),并且还会混淆与它们相关的名称。
在构建新的Docker映像时是否可以避免这些none:none映像?为了避免对Dockerfile提出任何建议/修改?
谢谢
答案 0 :(得分:0)
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)
如果以root身份运行,则省略“ sudo”
docker rmi $(docker images -f “dangling=true” -q)