Docker exec-无法使用环境变量调用postgres

晶眼

我在Postgres容器上定义了多个环境变量,例如POSTGRES_USER。容器正在运行,我想使用exec从命令行连接到Postgres。

我无法连接以下设备:

docker exec -it <CONTAINER-ID> psql -U $POSTGRES_USER -d <DB NAME>

我了解该变量是在容器上定义的,并且可以正常工作:

docker exec -it <CONTAINER-ID> bash -c 'psql -U $POSTGRES_USER  -d <DB NAME>'

我是否可以直接从docker exec执行psql命令并在容器上调用环境变量?

docker exec -it <CONTAINER-ID> psql -U ????? -d <DB NAME>
β.εηοιτ.βε

根据您的用例,您可以做什么,而不是将用户传递给psql命令,而是在引导时为容器定义环境变量PGUSER

这样,如果您不指定任何用户,它将成为PostgreSQL的默认用户,因此您甚至不必指定它即可进行连接:

$ docker run --name postgres -e POSTGRES_PASSWORD=bar -e POSTGRES_USER=foo -e PGUSER=foo -d postgres
e250f0821613a5e2021e94772a732f299874fc7a16b340ada4233afe73744423

$ docker exec -ti postgres psql -d postgres                                                          
psql (12.4 (Debian 12.4-1.pgdg100+1))
Type "help" for help.

postgres=# 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

exec docker运行时docker中的环境变量

来自分类Dev

无法执行Docker exec * ID * -it命令

来自分类Dev

使用Docker环境变量获取凭证

来自分类Dev

使用Docker更新容器的环境变量

来自分类Dev

Docker使用卷共享环境变量

来自分类Dev

如何使用docker exec运行源代码?

来自分类Dev

如何使用 docker exec 安装 Composer

来自分类Dev

使用Gradle任务构建映像时无法在Docker容器内设置环境变量

来自分类Dev

无法使用docker run -e或--env-file选项设置环境变量

来自分类Dev

Docker selenium 2.53 无法使用环境变量覆盖 maxInstances 和 maxSession

来自分类Dev

Docker echo环境变量

来自分类Dev

Docker中的环境变量

来自分类Dev

无法设置docker-machine环境变量bash

来自分类Dev

Docker中的Laravel无法识别环境变量

来自分类Dev

docker exec丢失

来自分类Dev

Docker exec 命令失败?

来自分类Dev

调用exec系列时是否替换,复制或共享环境变量?

来自分类Dev

包含docker exec命令的输出的变量不正确

来自分类Dev

Docker Compose-使用容器环境变量的命令

来自分类Dev

使用docker-compose还原环境变量

来自分类Dev

使用Docker Compose将JSON文件读入环境变量

来自分类Dev

docker使用环境变量在CMD中运行python脚本

来自分类Dev

如何在docker args中使用环境变量

来自分类Dev

如何在Docker ENTRYPOINT中使用撰写环境变量

来自分类Dev

Docker使用映像环境变量挂载卷

来自分类Dev

在Java中使用环境变量在Docker容器链接后

来自分类Dev

卷上的Docker Compose使用环境变量

来自分类Dev

构建Dockerfile时如何使用docker机器的环境变量

来自分类Dev

使用 Docker 构建策略从 OpenShift 秘密填充环境变量

Related 相关文章

热门标签

归档