【发布时间】:2019-08-31 10:28:33
【问题描述】:
在我的 Windows 中,我安装了 docker 和 ubuntu 18.4 wsl。所以在 localhost 上公开守护进程后,我可以在 ubuntu wsl 上使用 windows 守护进程。
我在驱动器 d 上创建了一个目录,并在数据目录中创建了一个文件,如下所示:
PS D:\wsl\data> dir
Directory: D:\wsl\data
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 8/31/2019 2:27 PM 0 New Text Document.txt
PS D:\wsl\data>
之后,我在 wsl 终端上运行如下所示的 postgres 容器:
$ docker run --name=pg-docker3 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=s123 -v /mnt/d/wsl/data:/var/lib/postgresql/data mdillon/postgis:11-alpine
创建容器后,我通过 bash 打开容器:
$ docker exec -it pg-docker3 bash
这是数据 postgres 目录:
bash-4.4# ls /var/lib/postgresql/data
PG_VERSION pg_commit_ts pg_logical pg_serial pg_subtrans pg_xact postmaster.pid
base pg_dynshmem pg_multixact pg_snapshots pg_tblspc postgresql.auto.conf
data pg_hba.conf pg_notify pg_stat pg_twophase postgresql.conf
global pg_ident.conf pg_replslot pg_stat_tmp pg_wal postmaster.opts
bash-4.4#
如您所见,data 目录结构位于位置,但当我在数据目录中列出内容时,我可以看到在主机中创建的文本文件!!!
我在数据目录中创建了一个名为 kk 的目录。
bash-4.4# ls /var/lib/postgresql/data
PG_VERSION pg_commit_ts pg_logical pg_serial pg_subtrans pg_xact postmaster.pid
base pg_dynshmem pg_multixact pg_snapshots pg_tblspc postgresql.auto.conf
data pg_hba.conf pg_notify pg_stat pg_twophase postgresql.conf
global pg_ident.conf pg_replslot pg_stat_tmp pg_wal postmaster.opts
bash-4.4# ls /var/lib/postgresql/data/data/
kk
bash-4.4#
但如您所见,不要在主机内创建此目录:
PS D:\wsl\data> dir
Directory: D:\wsl\data
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 8/31/2019 2:27 PM 0 New Text Document.txt
/var/lib/postgresql/data/data/ 在哪里?为什么它没有出现在 /mnt/d/wsl/data 中?
【问题讨论】:
标签: docker windows-subsystem-for-linux