zhangguanzhang's Blog

慎用docker的--rm选项!!!

字数统计: 276阅读时长: 1 min
2018/01/20 Share

Dockerfile里的VOLUMEdocker run -v /path的时候挂载容器的挂载点效果是一致的会在宿主机/var/lib/docker/volumes目录生成随机目录
发现--rm不单单是删除掉容器,还会删掉挂载点的数据

首先不使用--rm下看看效果

1
2
3
4
5
6
7
8
9
10
11
[root@guan_tx ]#  docker run  -tid --name busybox -v /guan busybox
be59bd455fbde8a8d195220d96c6676ad8fa6f26e1ebac6533020c83dacbf907
[root@guan_tx ]# docker exec busybox touch /guan/test.file
[root@guan_tx ]# docker stop busybox
busybox
[root@guan_tx ]# find /var/lib/docker/ -name 'test.file' -type f
/var/lib/docker/volumes/2f759d991f3d845dd63d2fbac08c587b7452b87e1b9b8a8450960edd0fdeb93d/_data/test.file
[root@guan_tx ]# docker rm busybox
busybox
[root@guan_tx ]# find /var/lib/docker/ -name 'test.file' -type f
/var/lib/docker/volumes/2f759d991f3d845dd63d2fbac08c587b7452b87e1b9b8a8450960edd0fdeb93d/_data/test.file

上面看到是删掉容器挂载点的文件还存在,删掉这个还存在的文件后我们再试试--rm的效果

1
2
3
4
5
6
7
8
9
[root@guan_tx ]# docker run --rm -tid --name busybox -v /guan busybox
f51a32541b7f99f8b1d14042479f3c7df4b7b30db2cb6a2072af1b17f5654c32
[root@guan_tx ]# docker exec busybox touch /guan/test.file
[root@guan_tx ]# find /var/lib/docker/ -name 'test.file' -type f
/var/lib/docker/volumes/7fa030713fd794d1882ec00877300d8bc1574f9fbecef13deade787aed52f8af/_data/test.file
[root@guan_tx ]# docker stop busybox
busybox
[root@guan_tx ]# find /var/lib/docker/ -name 'test.file' -type f
[root@guan_tx ]#

上面命令可以看出使用了--rm选项停掉容器后(会自动删掉容器)会删掉挂载点

CATALOG