在docker-compose.yml中使用Linux容器在Windows主机上挂载Docker卷

时间:2019-02-26 13:47:43

标签: docker docker-compose

我刚刚开始使用Docker和Docker Compose功能来设置我的Web App服务。我正在使用Linux容器的Windows主机上运行Docker。我得到了一个名为db_volume的命名卷,用于PostgreSQL服务。

services:
  postgres_image:
    image: postgres:latest
    ports:
      - "5432"
    restart: always
    volumes:
      - db_volume:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: "user"
      POSTGRES_PASSWORD: "password"
      POSTGRES_DB: "db1"
volumes:
  db_volume:

当我在该命名卷上使用docker volume inspect时,可以看到Mountpoint路径是Linux路径。

"Mountpoint": "/var/lib/docker/volumes/dockercompose18019271739475279775_db_volume/_data"

我想知道是否有任何方法可以将此路径转换为Windows,以便可以将这些数据导入pgadmin数据库中。

我已经在我的.env文件中设置了COMPOSE_CONVERT_WINDOWS_PATHS=1,但似乎没有用。

我还在Docker设置中共享了CD驱动器。

1 个答案:

答案 0 :(得分:0)

无法将其转换为Windows路径,因为在这种情况下,它不在Windows文件系统上。分配的存储位于MobyLinux VM上,该虚拟机是Windows安装的一部分。如果要将存储显示为本地Windows文件系统的一部分,则需要执行以下操作,将数据目录映射到主机文件系统:

version: '3'

services:
  postgres:
    container_name: pg
    image: postgres:latest
    ports:
      - "5432"
    restart: always
    volumes:
      - d:/pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: "user"
      POSTGRES_PASSWORD: "password"
      POSTGRES_DB: "db1"

您应该注意,在Windows上,您需要通过Docker设置中的“共享驱动器”设置公开驱动器。