Redhat
Linux + 安裝到作業系統卷的 docker 容器文件夾 + 如何知道真正的有限大小
在裡面
docker-compose.yml
我們配置了以下卷image: confluentinc/cp-kafka:latest volumes: - /grid/kafka-data:/var/lib/kafka/data
.
docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------------------------------------- kafka-node_kafka_1 /etc/confluent/docker/run Up 0.0.0.0:9092->9092/tcp
據我了解-kafka docker容器路徑-
/var/lib/kafka/data
安裝到/var/kafka-data
,當(/var/kafka-data
,是linux作業系統的路徑)關於 -
/var/kafka-data
此掛載點文件夾已掛載到 OS 磁碟 -/dev/sdb
而磁碟sdb
大小為 -1.8T byte
所以讓我們總結一下:
/var/lib/kafka/data
是 kafka docker 分區,/var
只有100G
/var/kafka-data
是掛載到 sdb 磁碟的分區(在 linux 作業系統上)我想問這個問題是為了安全起見
讓我們說在 kafka docker partition - 上
/var/lib/kafka/data
,大小/var/../data
大於100G
是否意味著容器分區
/var/lib/kafka/data
僅限於100G
?或者
/var
在 kafka docker 容器上限制為外部卷1.8T byte
?從kafka容器方面我們有:
# df -h /var Filesystem Size Used Avail Use% Mounted on overlay 101G 7.5G 94G 8% / df -h /var/lib/kafka/data/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/os-rhel_root 101G 7.5G 94G 8% /var/lib/kafka/data
在容器之外——在我們擁有的真正的 Linux 作業系統上
df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/os-rhel_root 50G 5.3G 45G 11% / devtmpfs 12G 0 12G 0% /dev tmpfs 12G 156K 12G 1% /dev/shm /dev/sdb 1.8T 77M 1.8T 1% /grid/kafka-data /dev/sda1 492M 158M 335M 32% /boot /dev/mapper/os-rhel_var 106G 11G 96G 10% /var tmpfs 26G 0 26G 0% /run/user/1005 tmpfs 26G 20K 26G 1% /run/user/0 overlay 101G 7.5G 94G 8% /var/lib/docker/overlay2/8411835673dfedd5986093eb771582dac7317d99f431b832f3baea8ea1aa3e4d/merged shm 64M 0 64M 0% /var/lib/docker/containers/629aefd21b6042ebfbf1a0a08a882b2f1865137edfb4b2b02f5c9a1681d895e4/mounts/shm overlay 101G 7.5G 94G 8% /var/lib/docker/overlay2/b4677bed14050337580958bc903bbb733d9464ca8bfc46124c3c506dc064867d/merged . . .
解決此問題的步驟如下(在聊天中討論):
- 檢查有
docker inspect
問題的容器的輸出。它產生大量輸出,要考慮的關鍵部分是Binds
和Mounts
部分。- 看到安裝到位後,為了避免隱藏實際數據目標的不匹配安裝,我們檢查容器中創建的文件是否在主機上可見。容器內的一個簡單命令
date > /var/lib/kafka/data/test.txt
就足夠了,並且/grid/kafka-data
在主機上變得可見。- 由於 docker 以某種方式在主機上的現有捲掛載之上安裝了一些東西的可能性很小(我從未見過,但是當它很重要時最好檢查兩次),我們在容器中創建一個 400 MiB 的測試文件,如下所示:
dd if=/dev/zero of=/var/lib/kafka/data/test.bin count=400 bs=1M
- 檢查
df
主機上的輸出顯示數據進入的捲的使用大小增加了約 400 MiB。由於這是針對“正確”的掛載點(大小為 1.8T)顯示的,我們確信寫入文件的實際限制是 1.8T。- 之後,測試文件
test.bin
和test.txt
被刪除以避免不必要的文件和空間使用使系統混亂。