我已经设置了泊坞窗,并且使用了完全不同的块设备来存储泊坞窗的系统数据:
[root@blink1 /]# cat /etc/sysconfig/docker # /etc/sysconfig/docker other_args="-H tcp://0.0.0.0:9367 -H unix:///var/run/docker.sock -g /disk1/docker"
请注意, /disk/1 使用的是完全不同的硬盘 /dev/xvdi
/disk/1
/dev/xvdi
Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 5.1G 2.6G 67% / devtmpfs 1.9G 108K 1.9G 1% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/xvdi 20G 5.3G 15G 27% /disk1 /dev/dm-1 9.8G 1.7G 7.6G 18% /disk1/docker/devicemapper/mnt/bb6c540bae25aaf01aedf56ff61ffed8c6ae41aa9bd06122d440c6053e3486bf /dev/dm-2 9.8G 1.7G 7.7G 18% /disk1/docker/devicemapper/mnt/c85f756c59a5e1d260c3cdb473f3f4d9e55ac568967abe190eeaf9c4087afeac
问题是,当我继续下载docker映像并运行docker容器时,似乎另一个硬盘驱动器 /dev/xvda1 也用完了。
/dev/xvda1
我可以通过删除一些Docker映像来验证此问题。在我删除了一些docker映像之后, /dev/xvda1 现在有了一些额外的空间。
我想念什么吗?
我的泊坞窗版本:
[root@blink1 /]# docker info Containers: 2 Images: 42 Storage Driver: devicemapper Pool Name: docker-202:1-275421-pool Pool Blocksize: 64 Kb Data file: /disk1/docker/devicemapper/devicemapper/data Metadata file: /disk1/docker/devicemapper/devicemapper/metadata Data Space Used: 3054.4 Mb Data Space Total: 102400.0 Mb Metadata Space Used: 4.7 Mb Metadata Space Total: 2048.0 Mb Execution Driver: native-0.2 Kernel Version: 3.14.20-20.44.amzn1.x86_64 Operating System: Amazon Linux AMI 2014.09
这是devicemapper的内核问题,它影响RedHat操作系统家族(RedHat,Fedora,CentOS和Amazon Linux)。删除的容器不会释放映射的磁盘空间。这意味着在受影响的操作系统上,启动和重新启动容器时会慢慢用完空间。
Docker项目已经意识到了这一点,并且内核被固定在上游(https://github.com/docker/docker/issues/3182)。
某种变通方法是为Docker提供其自己的卷以进行写入(“当Docker吞噬了您的磁盘空间时”)。这实际上并不能阻止它吞噬空间,而只是在其吞噬之后删除了系统的其他部分。
我的解决方案是卸载docker,然后删除其所有文件,然后重新安装:
sudo yum remove docker sudo rm -rf /var/lib/docker sudo yum install docker
这使我重新获得了空间,但是与启动替换实例并没有什么不同。我还没有找到更好的解决方案。