docker --rm选项

在Docker上,-- --rm选项表示退出容器时会自动将其删除。

$ docker run --rm <container_id>

完成🙂

请继续阅读以了解有关--rm更多信息。

1.取出一个容器

在Docker上,容器是映像的实例,我们可以从映像创建多个容器。 如果退出或停止了容器,则该容器在计算机上仍然存在,我们需要手动删除已停止的容器以释放磁盘空间。

此命令将删除一个Docker容器。

$ docker rm <container_id>

使用--rm ,容器将在退出时自动删除。

2.泊坞窗–rm

查看docker --rm示例。

2.1列出所有图像,然后使用Debian图像测试--rm选项。

$ docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
busybox                  latest              78096d0a5478        9 days ago          1.22MB
markdownhtml             1.1                 18e69a3a2aae        12 days ago         144MB
debian                   0.1                 ae0872208331        7 weeks ago         114MB

2.2列出所有容器,正在运行和已停止的容器。 在下面的示例中,我们有一个停止的容器。

$ docker ps -a
CONTAINER ID        IMAGE                                COMMAND                  CREATED              STATUS                          PORTS                  NAMES
d362659da5fc        markdownhtml:1.1                     "java -jar app.jar"      11 days ago          Exited (255) 10 days ago        0.0.0.0:80->8080/tcp   xenodochial_volhard

2.3我们从Debian镜像启动一个容器并运行ls -la命令。 容器完成了命令作业并退出。

$ docker run debian ls -la

total 72
drwxr-xr-x   1 root root 4096 May 23 04:04 .
drwxr-xr-x   1 root root 4096 May 23 04:04 ..
-rwxr-xr-x   1 root root    0 May 23 04:04 .dockerenv
drwxr-xr-x   2 root root 4096 Mar 27 00:00 bin
drwxr-xr-x   2 root root 4096 Feb  1 17:09 boot
drwxr-xr-x   5 root root  340 May 23 04:04 dev
drwxr-xr-x   1 root root 4096 May 23 04:04 etc
drwxr-xr-x   2 root root 4096 Feb  1 17:09 home
drwxr-xr-x   7 root root 4096 Mar 27 00:00 lib
drwxr-xr-x   2 root root 4096 Mar 27 00:00 lib64
drwxr-xr-x   2 root root 4096 Mar 27 00:00 media
#...

2.4再次列出所有容器,停止的Debian容器在此处列出,停止的容器可能会占用磁盘空间。 在以下示例中,新的停止的crazy_swirles容器占用10MB磁盘空间。

$ ps -a

CONTAINER ID        IMAGE                                COMMAND                  CREATED              STATUS                          PORTS                  NAMES
cf381d99f454        debian                               "ls -la"                 About a minute ago   Exited (0) About a minute ago                          crazy_swirles  (NEW Container)
d362659da5fc        markdownhtml:1.1                     "java -jar app.jar"      11 days ago          Exited (255) 10 days ago        0.0.0.0:80->8080/tcp   xenodochial_volhard

# show file size with -s
# display short output with --format
$ docker ps -as --format "{{.ID}}: {{.Image}}: {{.Status}}: {{.Size}}"

cf381d99f454: debian: Exited (0) 9 minutes ago: 10MB (virtual 114MB)
d362659da5fc: markdownhtml:1.1: Exited (255) 10 days ago: 39.4MB (virtual 184MB)

如果我们测试了很多容器,这将很快占用磁盘空间。 我们可以使用单个命令删除已停止的容器 ,但是我们有一个更好的选项--rm ,它将在退出容器时将其删除。

2.5再次从Debian映像运行容器,然后发送echo命令并退出容器,这一次使用--rm选项。

$ docker run --rm debian echo 'hello'
'hello'

2.6再次列出容器; 这次,列表中没有新的停止容器。 使用docker --rm ,上述停止的容器在退出时将被删除。

$ ps -a

CONTAINER ID        IMAGE                                COMMAND                  CREATED              STATUS                          PORTS                  NAMES
cf381d99f454        debian                               "ls -la"                 About a minute ago   Exited (0) About a minute ago                          crazy_swirles
d362659da5fc        markdownhtml:1.1                     "java -jar app.jar"      11 days ago          Exited (255) 10 days ago        0.0.0.0:80->8080/tcp   xenodochial_volhard

做完了 🙂

参考文献

翻译自: https://mkyong.com/docker/what-is-docker-rm-option/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐