主机系统中的卷

时间:2020-11-05 09:39:31

标签: docker

我可以使用相对路径创建docker卷:

version: '3'

services:
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: ${DB_PASS}
    volumes:
      - ./dbdata:/var/lib/postgresql/data
    ports:
      - '5432:5432'

然后,dbdata将在我的WSL 2上可用,并且我将能够使用sudo su输入它并检查其内容。

但是,当我运行docker volume ls时,我只看到下面的json,它根本看起来不像我的dbdata卷:

[
    {
        "CreatedAt": "2020-11-03T09:19:37Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/5d668164c5bcdf4cc01e4c8fbc20cc1155f757d4ba06dc5118fa2d0a0b5efb9b/_data",
        "Name": "5d668164c5bcdf4cc01e4c8fbc20cc1155f757d4ba06dc5118fa2d0a0b5efb9b",
        "Options": null,
        "Scope": "local"
    }
]

但是here我找到了这句话。

创建卷时,它存储在Docker主机上的目录中

因此,我的docker卷完全不应该位于WSL 2文件系统上,它们应该位于Docker host instead上。那为什么我在WSL中看到我的卷?

1 个答案:

答案 0 :(得分:1)

因为,您引用的报价适用于命名卷。也就是说,通过docker volume create命令创建的卷或在docker {commit.yml根volumes部分中定义的卷,但不在特定服务的volumes部分中。

更具体地说,该语法创建了bind mount而不是命名卷。