大家好,想咨询一下,docker是如何管理磁盘的呢?我有个jenkins的应用放在了一个容器里面,运行一段时间后容器变得非常巨大,然后我在容器中删除了部分大的文件,df -h发现不管是容器的虚拟分区还是宿主机的磁盘都没有释放任何空间出来,依旧是42%(容器)和50%(宿主)的磁盘占用,这是什么原因造成的呢?该如何解决呢?
大家讲道理2017-04-24 09:14:58
Docker이미지와 컨테이너에 대한 이해가 필요합니다. 물론 이는 파일 시스템의 관점에서 이해된다.
Docker 이미지는 읽기 전용 파일입니다. 강조하자면 읽기 전용이므로 이미지에 있는 파일을 실제로 삭제할 수는 없습니다. 삭제할 때 컨테이너가 파일을 볼 수 없도록 표시만 하면 됩니다. 따라서 이 파일은 여전히 이미지에 존재하며 디스크 공간을 차지합니다.
Docker 컨테이너는 이미지 기반의 읽기/쓰기 레이어로, 읽고 쓸 수 있습니다. 파일을 읽고 쓸 때 이미지에서 컨테이너의 읽기-쓰기 계층으로 파일이 복사된 다음 원본 파일이 이미지에 남아 있는 동안 복사된 파일을 읽고 씁니다. 또한 이 컨테이너의 읽기-쓰기 레이어도 디스크 공간을 차지합니다.
따라서 이미지와 컨테이너를 삭제해야만 디스크 공간을 확보할 수 있습니다.
이미지 삭제
으아아아컨테이너 삭제
으아아아모든 미러 삭제
으아아아모든 컨테이너 삭제
으아아아또한 컨테이너의 데이터 볼륨도 디스크 공간을 차지합니다. 다음 명령을 통해 만료된 볼륨을 삭제할 수 있습니다.
으아아아물론 가장 폭력적인 방법은 Docker가 이미지, 컨테이너, 데이터 볼륨을 저장하는 디렉터리(/var/lib/docker)를 삭제하는 것입니다.
주의해서 사용하세요! ! ! :
으아아아