Docker 技巧

维持一个长久运行的容器以供调试,加sleep infinity
容器停止后,自动删除这个容器 –rm

例子
docker run -dit – -device=/dev/kfd – -device=/dev/dri – -group-add video – -runtime=runc – -name ubuntu-alwayson qinzhen/comfyui-rocm:0.9.1 sleep infinity

之后使用 docker exec -it ubuntu-alwayson bash 进入,在宿主机使用docker restart ubuntu-alwayson 重启

AMD Rocm&Pytorch easy install

https://rocm.docs.amd.com/projects/install-on-linux/en/develop/install/3rd-party/pytorch-install.html

在容器内做了修改之后可以使用一下命令提交变更

docker commit “运行中的容器ID” “镜像名,如:qinzhen/xxxx”

做一个正式镜像

目录里建立Dockerfile文件,里面写上配置

docker build -t “镜像名” . (不要忘记有.)

docker push “镜像名”

清除Docker build的缓存
docker builder prune / docker builder prune -f / docker builder prune -af

改名
# Tag the existing image with a new name

docker tag old_image_name:latest new_image_name:latest

# Optionally, remove the old tag

docker rmi old_image_name:latest

Docker image 删除之后空间没有释放

这是 Docker 非常经典、但也很容易误解的问题。先给你一句结论:

删除 docker image ≠ 立刻释放磁盘空间
真正占空间的,往往是 容器、匿名 volume、build cache、overlay 层

下面一步一步帮你把空间真正清干净,并告诉你每一步在清什么


一、先确认:空间到底被谁占着(必须做)

先跑这条:

docker system df

你会看到类似:

TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          12        0         45GB      45GB (100%)
Containers      8         0         10GB      10GB (100%)
Local Volumes   15        2         80GB      60GB (75%)
Build Cache     23        0         35GB      35GB

👉 关键看 RECLAIMABLE,不是 SIZE
👉 这一步是“指路牌”,决定你下一步该删什么

评论已关闭。