You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从宿主机在Docker容器内执行PostgreSQL命令?

在Docker容器中执行PostgreSQL命令的问题解决

我在Docker容器运行的PostgreSQL里执行命令/查询时遇到问题,之前用MySQL的方法可以正常工作,但PostgreSQL的写法报错。

可行的MySQL命令

# MySQL
docker exec $CONTAINER mysql -u$MYSQL_USER -p$PASSWORD -e "USE $DATABASE;"

尝试的PostgreSQL命令(报错)

# PostgreSQL
docker exec -i db psql -h localhost -U postgres -d app -e "SELECT * FROM users;"

错误信息

psql: warning: extra command-line argument "SELECT * FROM users;" ignored

解决方法

PostgreSQL的psql工具执行SQL语句需要用-c参数(对应MySQL的-e),而你用的-e参数是用来回显执行的SQL命令的,不是传递要执行的语句的。正确命令如下:

单条SQL语句

docker exec -i db psql -h localhost -U postgres -d app -c "SELECT * FROM users;"

多条SQL语句

如果要执行多条语句,可以把内容写入SQL文件,通过管道传入:

cat your_queries.sql | docker exec -i db psql -h localhost -U postgres -d app

或者直接在-c参数里用分号分隔多条语句:

docker exec -i db psql -h localhost -U postgres -d app -c "SELECT * FROM users; SELECT * FROM orders;"

内容的提问来源于stack exchange,提问作者dokgu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 11:46:00