如果我构建一个与现有镜头同名的新docker镜像,是否会覆盖旧镜头?
答案 0 :(得分:18)
Docker中的图片没有名称,它们有标签。
标签是对图像的引用。多个标签可以指代相同的图像。
如果您重新分配已使用的标记,则原始图像将丢失标记,但将继续存在(它仍然可以通过其图像ID访问,其他标记可能会引用它)。
答案 1 :(得分:2)
您可以使用带有标签的版本e / g /:
docker build -t <USER>/<CONTAINER>:<VERSION>
docker build -t maluuba/haproxy:2
docker build -t maluuba/haproxy:latest #Default behavior when you don't use version
docker build -t maluuba/haproxy:old
答案 2 :(得分:0)
清理未使用的映像并节省磁盘空间的一种简单方法是在终端中为清理命令添加别名,方法是将其添加到~/.bashrc
或~/.bash_profile
:
alias docker_rmi_dangling="docker rmi \
docker images -qa -f'dangling = true'`“`
然后在您的shell中运行docker_rmi_dangling
。
(this comment的启示)
答案 3 :(得分:0)
无法覆盖name:tag
格式的同名docker映像,但是如果您为映像{{1}设置标签my-label
,则可以在构建后自动将其删除。 }:
my-image:latest
更新:必须严格遵循以下顺序:
docker build --tag my-image:latest --label my-label ubuntu:latest
docker image prune --force --filter='label=my-label'
docker build ...
docker image prune ..
docker build ...
如果您运行:
docker image prune ..
docker build ...
docker image prune ..
docker build ...
docker build ...
您将从第3步中获得图片。
答案 4 :(得分:0)
两个快速别名,用于删除所有容器和图像。
#Containers
$ alias rmdockerall="docker rm $(docker ps -a -q)"
#Images
$ alias rmidockerall="docker rmi $(docker images -a -q)"