在容器中查詢檔案系統資訊如下:
root@27755d922ffb:~# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 18G 15G 2.1G 88% /
none 18G 15G 2.1G 88% /
tmpfs 998M 0 998M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/disk/by-uuid/f65dfc67-4152-4da0-9a6e-fcc2b822a574 18G 15G 2.1G 88% /etc/hosts
tmpfs 998M 0 998M 0% /proc/kcore
root@27755d922ffb:~# tune2fs -l rootfs
tune2fs 1.42.9 (4-Feb-2014)
tune2fs: No such file or directory while trying to open rootfs
Couldn't find valid filesystem superblock.
請問為什么看不到檔案系統資訊?
正常情況下,不應該是類似于/dev/sda1之類的名字嗎,為什么是rootfs
另外,撰寫如下程式:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#define __USE_GNU 1
#include <fcntl.h>
int main()
{
int ret_num = 0;
char *szPath = "./test.txt";
int dwFlags = O_RDWR | O_NOATIME | O_CREAT | O_SYNC;
printf("open function test\n");
ret_num = open("./test1.txt", dwFlags, 00600);
if (ret_num == -1)
printf("test1(no O_DIRECT) fail system errno %d\n",errno);
else
printf("test1(no O_DIRECT) Success\n");
ret_num = 0;
dwFlags |= O_DIRECT;
ret_num = open("./test2.txt", dwFlags, 00600);
if (ret_num == -1)
printf("test2(have O_DIRECT) fail system errno %d\n",errno);
else
printf("test2(have O_DIRECT) Success\n");
printf("open function test finish\n");
}
在ubuntu服務器上執行結果如下:
root@ubuntu:~# gcc test.c -o aa
root@ubuntu:~# ./aa
open function test
test1(no O_DIRECT) Success
test2(have O_DIRECT) Success
open function test finish
在ubuntu容器中執行結果如下:
root@27755d922ffb:~# gcc test.c -o aa
root@27755d922ffb:~# ./aa
open function test
test1(no O_DIRECT) Success
test2(have O_DIRECT) fail system errno 2
open function test finish
請問有什么 辦法解決這個差異?謝謝!
uj5u.com熱心網友回復:
docker 應該是取宿主機器上的一個目錄作為/ 所有沒有/dev/sdx.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/88585.html
標籤:Docker
上一篇:spark批量插入hbase
下一篇:Linux 磁盤管理
