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

2023-12-31

我刚刚开始使用 Docker 和 Docker Compose 功能来设置我的 Web 应用程序服务。我正在使用 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 数据库中。

我已经设置了COMPOSE_CONVERT_WINDOWS_PATHS=1在我的 .env 文件中,但它似乎不起作用。

我也分享了我的C and DDocker 设置中的驱动器。


无法将其转换为 Windows 路径,因为在这种情况下它不在 Windows 文件系统上。您分配的存储位于 MobyLinux VM 上,该 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 设置中的“共享驱动器”设置公开驱动器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐