Installing PostgreSQL within a docker container
我一直在关注几个不同的教程以及官方教程但是每当我尝试在容器中安装PostgreSQL时我会得到以下消息
1 2 3 | psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket"/var/run/postgresql/.s.PGSQL.5432"? |
我已经在SO和整个互联网上查看了几个问题,但没有运气。
问题是您的应用程序/项目正在尝试访问HOST计算机中的postgres套接字文件(而不是docker容器)。
要解决这个问题,要么在使用
:注意:
使用
下面我将演示如何运行一个可以从tcp / ip和unix socket访问的postgres容器。我也将容器命名为
还有其他解决方案,但我觉得这个最合适。最后,如果需要访问的应用程序/项目也是一个容器,最好只链接它们。
默认情况下,
如果你在docker中使用端口绑定运行postgresql-server,那么你必须告诉
以下是修复该错误的说明,该错误也适用于您的docker容器:PostgreSQL错误'无法连接到服务器:没有此类文件或目录'
如果由于任何原因不起作用,你可以在Docker索引上查看许多现成的postgresql docker容器以供参考:https://index.docker.io/search?q = postgregql
许多容器都是在github上使用可靠的repos构建的。因此,如果您发现它看起来符合您的需求,您可以查看来源。
Flynn项目还包括一个可能值得一试的postgresql设备:https://github.com/flynn/flynn-postgres
来自postgres:9.6
运行apt-get update&& apt-get install -q -y postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6 postgresql-client-common postgresql-common
RUN echo postgres:postgres | chpasswd的
运行pg_createcluster 9.6 main --start
运行/etc/init.d/postgresql启动
RUN su -c"psql -c"ALTER USER postgres PASSWORD'postgres';"postgres