如何从父主机终端中启动的postgres容器访问psql、createdb和其他postgress命令



我正在Mac上启动一个postgres Docker容器,带有:

docker run --name cool-postgres -p 5433:5433 -e POSTGRES_USER=cooluser -e POSTGRES_PASSWORD=securepassword -e POSTGRES_DB=cooldb --rm postgres

对Docker来说,我的目标是在成功启动Docker实例后,从终端父主机运行psqlcreatedb和/或其他相关的postgresql命令,最终写入上面创建的数据库。如何以运行容器命令的方式引用容器?通过阅读文档,我并没有看到一个好的解决方案。我似乎可以在启动时运行psql命令,但这需要从shell脚本中完成。

请告诉我是否可以在排除连接故障时提供其他信息。

如何以运行容器命令的方式引用容器?

你没有。容器有自己的文件系统,与主机的文件系统隔离。主机不能(直接(运行容器中的命令,容器不能在主机上运行命令,容器也不能在其他容器中运行命令。

通常的方法是在主机上(在带有Homebrew的OSX上,brew install postgres(安装一个客户端包,在服务器上安装docker run,并针对服务器运行客户端命令。在这种非常特殊的情况下,直接从主机上的shell针对同一主机上的容器运行命令,可以使用localhost作为$PGHOST值。

最新更新