Docker compose生成匿名卷,而不是现有的命名卷

时间:2019-03-08 07:24:48

标签: docker docker-compose docker-machine docker-desktop

为了跟踪使用的卷,我喜欢使用命名卷。目前我有一个命名卷

docker volume ls
DRIVER   VOLUME NAME
local    mongodb

我的docker-compose文件是这样的:

version: "3"

services: 
  db:
    image: mongo:4.0.6
    container_name: mongo
    ports:
      - 27017:27017
    environment: 
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: macmongoroot
    volumes: 
      - mongodb:/data/db

volumes:
  mongodb:
    external:
      name: mongodb

networks:
  default:
    external:
      name: macbook

每次我运行docker-compose docker-compose up -d时,docker compose都会添加一个新的匿名卷,而不是使用命名卷:

docker volume ls
DRIVER     VOLUME NAME
local      a4a02fffa9bbbdd11c76359264a5bf24614943c5b1b0070b33a84e51266c58d7
local      mongodb

此docker compose文件在我的服务器上工作正常,但是在我的docker桌面上,我遇到了这个问题。当前使用Docker Desktop版本2.0.0.3(31259)。任何帮助将不胜感激,谢谢

1 个答案:

答案 0 :(得分:0)

匿名卷属于/data/configdb,在Dockerfile instructions

VOLUME /data/db /data/configdb

通过在创建的容器上执行docker inspect,您会注意到以下内容:

"Mounts": [
            {
                "Type": "volume",
                "Name": "mongodb",
                "Source": "/var/lib/docker/volumes/mongodb/_data",
                "Destination": "/data/db",
                "Driver": "local",
                "Mode": "rw",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "volume",
                "Name": "be86274b1f6009eb60b8acb3855f51931c4ccc7df700666555422396688b0dd6",
                "Source": "/var/lib/docker/volumes/be86274b1f6009eb60b8acb3855f51931c4ccc7df700666555422396688b0dd6/_data",
                "Destination": "/data/configdb",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ]

这意味着mongodb卷实际上已按照您的要求用于数据,但是将为此/data/configdb创建另一个卷。您也可以通过检查此源路径/var/lib/docker/volumes/mongodb/_data来保存mongodb数据,以验证数据是否存在

$ ls /var/lib/docker/volumes/mongodb/_data                                                                            total 328
drwxr-xr-x 4  999  999  4096 Mar  8 11:02 .
drwxr-xr-x 3 root root  4096 Mar  8 10:58 ..
-rw------- 1  999  999 16384 Mar  8 11:00 collection-0--2358474299739251284.wt
-rw------- 1  999  999 36864 Mar  8 11:01 collection-2--2358474299739251284.wt
-rw------- 1  999  999  4096 Mar  8 11:00 collection-4--2358474299739251284.wt
-rw------- 1  999  999 16384 Mar  8 11:00 collection-7--2358474299739251284.wt
drwx------ 2  999  999  4096 Mar  8 11:11 diagnostic.data
-rw------- 1  999  999 16384 Mar  8 11:00 index-1--2358474299739251284.wt
-rw------- 1  999  999 36864 Mar  8 11:01 index-3--2358474299739251284.wt
-rw------- 1  999  999  4096 Mar  8 10:58 index-5--2358474299739251284.wt
-rw------- 1  999  999  4096 Mar  8 11:01 index-6--2358474299739251284.wt
-rw------- 1  999  999 16384 Mar  8 10:58 index-8--2358474299739251284.wt
-rw------- 1  999  999 16384 Mar  8 10:58 index-9--2358474299739251284.wt
drwx------ 2  999  999  4096 Mar  8 11:00 journal
-rw------- 1  999  999 16384 Mar  8 11:00 _mdb_catalog.wt
-rw------- 1  999  999     2 Mar  8 11:00 mongod.lock
-rw------- 1  999  999 36864 Mar  8 11:02 sizeStorer.wt
-rw------- 1  999  999   114 Mar  8 10:58 storage.bson
-rw------- 1  999  999    45 Mar  8 10:58 WiredTiger
-rw------- 1  999  999  4096 Mar  8 11:00 WiredTigerLAS.wt
-rw------- 1  999  999    21 Mar  8 10:58 WiredTiger.lock
-rw------- 1  999  999  1065 Mar  8 11:02 WiredTiger.turtle
-rw------- 1  999  999 69632 Mar  8 11:02 WiredTiger.wt