Rumah > Soal Jawab > teks badan
大家好,想咨询一下,docker是如何管理磁盘的呢?我有个jenkins的应用放在了一个容器里面,运行一段时间后容器变得非常巨大,然后我在容器中删除了部分大的文件,df -h发现不管是容器的虚拟分区还是宿主机的磁盘都没有释放任何空间出来,依旧是42%(容器)和50%(宿主)的磁盘占用,这是什么原因造成的呢?该如何解决呢?
大家讲道理2017-04-24 09:14:58
Perlu memahami Dockerimej dan bekas. Sudah tentu, ini difahami dari perspektif sistem fail.
Imej docker ialah fail baca sahaja. Untuk menekankan, ia adalah baca sahaja, jadi kami sebenarnya tidak boleh memadamkan fail dalam imej. Apabila anda memadamkannya, anda hanya membuat tanda supaya bekas tidak dapat melihat fail itu. Jadi fail ini masih wujud dalam imej dan mengambil ruang cakera.
Bekas docker ialah lapisan baca-tulis berdasarkan imej, yang boleh dibaca dan ditulis. Apabila membaca dan menulis fail, fail disalin daripada imej ke lapisan baca-tulis bekas, dan kemudian fail yang disalin dibaca dan ditulis, manakala fail asal masih dalam imej. Selain itu, lapisan baca-tulis bekas ini juga mengambil ruang cakera.
Jadi, kami hanya boleh mengosongkan ruang cakera dengan memadamkan imej dan bekas.
Padamkan imej
sudo docker rmi <Image Name>
Padam bekas
sudo docker rm <Container Name>
Padam semua cermin
sudo docker rmi -a
Padam semua bekas
sudo docker rm -a
Selain itu, volum data bekas juga mengambil ruang cakera Anda boleh memadamkan volum tamat tempoh melalui arahan berikut:
sudo docker volume rm $(docker volume ls -qf dangling=true)
Sudah tentu, cara yang paling ganas ialah memadamkan direktori tempat Docker menyimpan imej, bekas dan volum data (/var/lib/docker)
Gunakan dengan berhati-hati! ! ! :
sudo service docker stop
sudo rm -rf /var/lib/docker
sudo service docker start