Docker覆盖文件吗?

我已经创build了基于mongo:latest简单图像。 我的Dockerfile只是

 FROM mongo:3.3 MAINTAINER developer@encode.cz 

现在,当我运行它的CMD docker run my-mongo mongod我得到没有/data/db错误。 但是在mongo基本映像中显然有RUN mkdir /data/db 。 也是纯mongo基本图像按预期工作。

为什么这个文件夹不存在于我的自定义图像,如果它在基础图像?

我觉得你在testing的方式上有问题,或者我不太了解你的问题。 我testing了官方的形象:

 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 

然后我用你的两行创build一个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 

请注意,/ data / db目录被声明为一个卷。 如果遇到问题,重新启动docker守护程序并检查可用磁盘空间df -h

问候