我正在使用Postgres 图像,该图像VOLUME
用于存储数据并且不会将端口暴露给外部,但需要链接才能连接。
我想知道是否有一种方法可以使用需要我指定数据库的主机和端口的应用程序从主机连接到它?
我正在使用Postgres 图像,该图像VOLUME
用于存储数据并且不会将端口暴露给外部,但需要链接才能连接。
我想知道是否有一种方法可以使用需要我指定数据库的主机和端口的应用程序从主机连接到它?
从您链接的文档中:
此映像包括 EXPOSE 5432(postgres 端口),因此标准容器链接将使其自动可用于链接的容器。默认的 postgres 用户和数据库是在 initdb 的入口点中创建的。
有几个选项。最简单的方法是在执行运行命令时通过主机上的端口公开容器。例如:
$ docker run -d -p 5432:5432 postgres
8c04d3401878cc93503950ab3f118f0c65960719b969adb06a50bb2a482e5147
现在您应该可以通过主机上的端口 5432 访问该服务,例如
$ psql -h 0.0.0.0 -p 5432 -U postgres
您还可以查看各种 Docker 网络选项,例如--net=host
,但除非您知道自己在做什么,否则我不建议您这样做。文档在这里http://docs.docker.com/articles/networking/。
但是,可以说最好的解决方案是将其他应用程序也放入容器中。