跳转至

Docker rm命令删除容器


2016-08-17 by dongnan

举个栗子

删除容器

# 删除前必须先停止容器 
docker stop ddc86cc2ff29 
# 单个容器
docker rm ddc86cc2ff29

# 所有容器
docker rm `docker ps -a -q`

# 退出时自动删除容器,适合测试场景。
docker run -ti --rm centos /bin/bash 
[root@259a6f93bf3d /]# exit #退出容器
exit

删除数据卷

数据卷是被设计用来持久化数据的,它的生命周期独立于容器,Docker不会在容器被删除后自动删除数据卷, 并且也不存在垃圾回收这样的机制来处理没有任何容器引用的数据卷。

如果需要在删除容器的同时移除数据卷,可以在删除容器的时候使用 docker rm -v 这个参数。

当前的容器

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
ddc80c332922        registry:2          "/bin/registry serve "   8 minutes ago       Up 8 minutes        0.0.0.0:5000->5000/tcp   registry2

删除容器与数据卷

# 停止容器 
docker stop ddc80c332922

# 删除容器同时删除数据卷 
docker rm -v ddc80c332922

帮助

# 执行命令
docker rm --help

Usage:    docker rm [OPTIONS] CONTAINER [CONTAINER...]

Remove one or more containers
  -f, --force        Force the removal of a running container (uses SIGKILL)
  --help             Print usage
  -l, --link         Remove the specified link
  -v, --volumes      Remove the volumes associated with the container
  --rm=false         Automatically remove the container when it exits

强制删除容器

在某些情况下会发生无法删除容器的问题:

# 停止容器
docker stop 49db5db743f8

# 删除报错
docker rm 49db5db743f8

Error response from daemon: You cannot remove a running container \
49db5db743f8c77fb343a6f622270a311f3e67475bc2dc3eb7c15f496eab4102. \
Stop the container before attempting removal or use -f

强制删除

# 注意数据将被删除
docker rm -f 49db5db743f8

验证容器

# 执行命令
docker ps
CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS              PORTS               NAMES

容器已经删除。

回到页面顶部