2016-10-28 48 views
0

我已經創建了基於mongo:latest的簡單圖像。我Dockerfile只是Docker覆蓋文件嗎?

FROM mongo:3.3 
MAINTAINER [email protected] 

現在,當我通過CMD docker run my-mongo mongod運行它,我沒有得到任何/data/db錯誤。但在mongo基礎圖像中顯然有RUN mkdir /data/db。另外純mongo基本圖像按預期工作。

爲什麼此文件夾不存在於我的自定義圖像中,如果它在基礎圖像中?

+0

你給'/數據/ db'right所有者和權限? – gzc

+0

我用-ti參數運行了我的映像,甚至沒有看到/數據文件夾。但預計它至少是以前的圖像創建的。 –

回答

1

我覺得你在測試的方式上有問題,或者我不明白你的問題。我測試的官方圖片:

docker run -d --name mongo mongo:3.3 mongod 
docker exec -it mongo bash -c 'ls -la /data/db' 

total 192 
drwxr-xr-x 4 mongodb mongodb 4096 Oct 28 18:11 . 
drwxr-xr-x 4 root root  4096 Oct 21 20:47 .. 
-rw-r--r-- 1 mongodb mongodb 46 Oct 28 17:56 WiredTiger 
-rw-r--r-- 1 mongodb mongodb 21 Oct 28 17:56 WiredTiger.lock 
-rw-r--r-- 1 mongodb mongodb 935 Oct 28 18:11 WiredTiger.turtle 
-rw-r--r-- 1 mongodb mongodb 40960 Oct 28 18:11 WiredTiger.wt 
-rw-r--r-- 1 mongodb mongodb 4096 Oct 28 17:56 WiredTigerLAS.wt 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 17:57 _mdb_catalog.wt 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 17:57 collection-0--3585910680230311914.wt 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 17:57 collection-2--3585910680230311914.wt 
drwxr-xr-x 2 mongodb mongodb 4096 Oct 28 18:11 diagnostic.data 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 17:57 index-1--3585910680230311914.wt 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 17:57 index-3--3585910680230311914.wt 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 17:57 index-4--3585910680230311914.wt 
drwxr-xr-x 2 mongodb mongodb 4096 Oct 28 17:56 journal 
-rw-r--r-- 1 mongodb mongodb  2 Oct 28 17:56 mongod.lock 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 17:57 sizeStorer.wt 
-rw-r--r-- 1 mongodb mongodb 95 Oct 28 17:56 storage.bson 

然後,我創建了一個Dockerfile與兩行:

docker build -t my-mongo . 
docker run -d --name my-mongo my-mongo mongod 
docker exec -it my-mongo bash -c 'ls -la /data/db' 

total 192 
drwxr-xr-x 4 mongodb mongodb 4096 Oct 28 18:12 . 
drwxr-xr-x 4 root root  4096 Oct 21 20:47 .. 
-rw-r--r-- 1 mongodb mongodb 46 Oct 28 18:06 WiredTiger 
-rw-r--r-- 1 mongodb mongodb 21 Oct 28 18:06 WiredTiger.lock 
-rw-r--r-- 1 mongodb mongodb 932 Oct 28 18:12 WiredTiger.turtle 
-rw-r--r-- 1 mongodb mongodb 40960 Oct 28 18:12 WiredTiger.wt 
-rw-r--r-- 1 mongodb mongodb 4096 Oct 28 18:06 WiredTigerLAS.wt 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 18:07 _mdb_catalog.wt 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 18:07 collection-0-683121925029568227.wt 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 18:07 collection-2-683121925029568227.wt 
drwxr-xr-x 2 mongodb mongodb 4096 Oct 28 18:13 diagnostic.data 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 18:07 index-1-683121925029568227.wt 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 18:07 index-3-683121925029568227.wt 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 18:07 index-4-683121925029568227.wt 
drwxr-xr-x 2 mongodb mongodb 4096 Oct 28 18:06 journal 
-rw-r--r-- 1 mongodb mongodb  2 Oct 28 18:06 mongod.lock 
-rw-r--r-- 1 mongodb mongodb 16384 Oct 28 18:07 sizeStorer.wt 
-rw-r--r-- 1 mongodb mongodb 95 Oct 28 18:06 storage.bson 

要知道,在/數據/ db目錄被聲明爲一個卷。如果您有withn的問題,重新啓動碼頭工人守護進程,並檢查您的可用磁盤空間df -h

問候

+0

我也是這麼做的。第一步和你的完全一樣,一切正常。我甚至嘗試過「碼頭檢查mongo」來查看卷裝源。但是當我運行像以前一樣創建的my-mongo映像時,由於相同的錯誤,我得到「Container not running ...」 - 沒有創建/ data/db。 –

+0

嗯1建議:在另一臺機器上測試。 2重新啓動docker守護進程。 3檢查你的碼頭版本 –

+0

是的,我重新安裝版本1.12.1到1.12.1,重建圖像,現在它確定。我沒有得到它,2毫無意義的小時白白浪費了。我甚至會理解,如果我已經對碼頭設置進行了一些修改,但它是全新的安裝和碼頭工人的第一次體驗:(。 –