\copy table 通过 psql 从本地到容器内的 Docker 容器
\copy table via psql from local to Docker container from within the container
免责声明:不是在谈论 this。
当我在实时 docker 容器中时,如何从 psql
执行 \copy
命令?
当我尝试时 \copy table from '/home/Snow/Documents/table.csv' with delimiter as ',' csv header;
我收到错误:
No such file or directory
我应该写一个不同的路径吗?
您可以从容器外部使用 psql
和以下命令导入文件:
$ cat table.csv | psql -h docker_container -d db -c \
"COPY table FROM STDIN WITH DELIMITER ',' CSV"
- 将
docker_container
替换为容器的IP或主机名
- 如果您的 postgres 未配置为接受外部连接,请在
postgres.conf
文件中进行更改:例如listen_addresses = '*'
监听所有外部连接。
您必须将文件复制到 docker 容器或挂载目录。
要复制文件,请按照您链接到的问题中的过程进行操作,例如:
docker cp /home/Snow/Documents/table.csv your_container:/
然后,从您的容器中,您可以导入访问文件:
\copy table from '/table.csv' with delimiter as ',' csv header;
或者,当您创建容器时,您可以使用 -v 选项添加一个卷,例如:
docker run -v /home/Snow/Documents:/data postgres
然后您的文档目录将位于 /data 允许您像这样导入:
\copy table from '/data/table.csv' with delimiter as ',' csv header;
免责声明:不是在谈论 this。
当我在实时 docker 容器中时,如何从 psql
执行 \copy
命令?
当我尝试时 \copy table from '/home/Snow/Documents/table.csv' with delimiter as ',' csv header;
我收到错误:
No such file or directory
我应该写一个不同的路径吗?
您可以从容器外部使用 psql
和以下命令导入文件:
$ cat table.csv | psql -h docker_container -d db -c \
"COPY table FROM STDIN WITH DELIMITER ',' CSV"
- 将
docker_container
替换为容器的IP或主机名 - 如果您的 postgres 未配置为接受外部连接,请在
postgres.conf
文件中进行更改:例如listen_addresses = '*'
监听所有外部连接。
您必须将文件复制到 docker 容器或挂载目录。
要复制文件,请按照您链接到的问题中的过程进行操作,例如:
docker cp /home/Snow/Documents/table.csv your_container:/
然后,从您的容器中,您可以导入访问文件:
\copy table from '/table.csv' with delimiter as ',' csv header;
或者,当您创建容器时,您可以使用 -v 选项添加一个卷,例如:
docker run -v /home/Snow/Documents:/data postgres
然后您的文档目录将位于 /data 允许您像这样导入:
\copy table from '/data/table.csv' with delimiter as ',' csv header;