cari

Rumah  >  Soal Jawab  >  teks badan

docker运行中容器不释放磁盘空间

大家好,想咨询一下,docker是如何管理磁盘的呢?我有个jenkins的应用放在了一个容器里面,运行一段时间后容器变得非常巨大,然后我在容器中删除了部分大的文件,df -h发现不管是容器的虚拟分区还是宿主机的磁盘都没有释放任何空间出来,依旧是42%(容器)和50%(宿主)的磁盘占用,这是什么原因造成的呢?该如何解决呢?

PHP中文网PHP中文网2771 hari yang lalu1190

membalas semua(1)saya akan balas

  • 大家讲道理

    大家讲道理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

    balas
    0
  • Batalbalas