【发布时间】:2020-03-23 23:52:47
【问题描述】:
我希望运行一个 postgresql docker 容器来保存一些数据。我之前将 docker 用于 clickhouse,但没有用于 postgresql,我在这里遇到了一些基本问题,即使用 COPY 加载数据。以下是详细信息:
操作系统:在 NUC 上运行的 UBUNTU 16.04
从这里使用 docker postgres 服务器容器:
https://docs.docker.com/engine/examples/postgresql_service/
docker ps 显示服务器运行没问题:
29fb9b39e293 eg_postgresql "/usr/lib/postgresql…" 43 hours ago Up 3 hours 0.0.0.0:5432->5432/tcp pg_test
我想复制当前位于以下文件夹中同一 NUC 中的文件:
Desktop/ems/ems_raw.csv
我已将用户权限授予 postgres 用户以防万一:
-rw-rw-r-- 1 postgres me 4049497429 Mar 22 12:17 Desktop/ems/ems_raw.csv
me@docker1:~$
我尝试在 psql 中运行以下命令。方法一:
me@docker1:~$ docker exec -ti pg_test psql -U postgres
psql (9.3.17)
Type "help" for help.
postgres=# COPY ems_stage FROM "Desktop/ems/ems_raw.csv" WITH (format csv,header);
ERROR: syntax error at or near ""Desktop/ems/ems_raw.csv""
LINE 1: COPY ems_stage FROM "Desktop/ems/ems_raw.csv" WITH (format c...
^
postgres=#
我也尝试通过终端直接运行它以防万一,方法 2:
me@docker1:~$ docker exec -ti pg_test psql -U postgres -c "COPY ems_stage FROM "Desktop/ems/ems_raw.csv" WITH (format csv,header);"
ERROR: syntax error at or near "Desktop"
LINE 1: COPY ems_stage FROM Desktop/ems/ems_raw.csv WITH (format csv...
^
me@docker1:~$
我知道这里有一些基本的东西我可能无法理解。我将如何正确运行它?我假设我在路径上犯了错误?感谢大家的帮助。
【问题讨论】:
-
您可以在运行容器时将此目录挂载为卷或将其复制到容器中,如下所述:stackoverflow.com/questions/22907231/…
标签: postgresql docker