我在AWS上的ElasticBeanstalk上有一台服务器。即使没有提取图像,精简池也会在一天之内不断填充,直到文件系统以只读方式重新安装并且应用程序死亡。
最新Amazon AMI上的Docker 1.12.6会发生这种情况。
我无法真正做出正面或反面。
当EC2实例(托管Beanstalk)启动时,它在精简池中大约有1.3GB。当我的1.2GB图像运行时,它有大约3.6GB(这是记住的信息,它非常接近这个)。好的,没关系。
切成5小时后......
(来自托管它的EC2实例)docker info
返回:
Storage Driver: devicemapper
Pool Name: docker-docker--pool
Pool Blocksize: 524.3 kB
Base Device Size: 107.4 GB
Backing Filesystem: ext4
Data file:
Metadata file:
Data Space Used: 8.489 GB
Data Space Total: 12.73 GB
Data Space Available: 4.245 GB
lvs
同意。
在另外几个小时内,将使用12.73GB和0 B免费。
dmesg将报告:
[2077620.433382] Buffer I/O error on device dm-4, logical block 2501385
[2077620.437372] EXT4-fs warning (device dm-4): ext4_end_bio:329: I/O error -28 writing to inode 4988708 (offset 0 size 8388608 starting block 2501632)
[2077620.444394] EXT4-fs warning (device dm-4): ext4_end_bio:329: I/O error
[2077620.473581] EXT4-fs warning (device dm-4): ext4_end_bio:329: I/O error -28 writing to inode 4988708 (offset 8388608 size 5840896 starting block 2502912)
[2077623.814437] Aborting journal on device dm-4-8.
[2077649.052965] EXT4-fs error (device dm-4): ext4_journal_check_start:56: Detected aborted journal
[2077649.058116] EXT4-fs (dm-4): Remounting filesystem read-only
然而容器本身几乎没有使用任何空间......
(在Docker容器中:) df -h
/dev/mapper/docker-202:1-394781-1exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 99G 1.7G 92G 2% /
tmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/xvda1 25G 1.4G 24G 6% /etc/hosts
shm 64M 0 64M 0% /dev/shm
du -sh /
1.7G /
这个空间怎么能填满?我的程序正在进行非常低容量的日志记录,并且日志文件非常小。我有充分的理由不把它们写到stdout / stderr。
xxx@xxxxxx:/var/log# du -sh .
6.2M .
我也做了docker logs
,输出小于7k:
>docker logs ecs-awseb-xxxxxxxxxxxxxxxxxxx > w4
>ls -alh
-rw-r--r-- 1 root root 6.4K Mar 27 19:23 w4
同一个容器不会对我的本地docker设置执行此操作。最后,在EC2实例上运行du -sh /
显示使用率低于1.4GB。
它无法通过日志文件填充,并且不会被填充到日志文件中 容器。怎么回事?我在我的智慧'结束!