Impossible de se connecter au serveur postgres dans le panneau

J'ai commencé un serveur postgresql dans le panneau et ont exposé le port 5432 par sudo docker run -it -p 5432:5432 9c421f1a239c bash et démarrer le serveur postgres manuellement à l'intérieur du conteneur docker, mais ne peut pas s'y connecter avec la commande: psql -h 172.17.0.63 -U venti. 172.17.0.63 est un droit de propriété intellectuelle, et venti est mon pg nom d'utilisateur. Mais d'erreur:

psql: could not connect to server: Connection refused
    Is the server running on host "172.17.0.63" and accepting
    TCP/IP connections on port 5432?

Mon pg_hba.conf ressemble à ceci:

local   all             postgres                                peer
host all all 0.0.0.0/0 trust
local all all trust

De la connexion à la pg serveur à l'intérieur du conteneur fonctionne correctement.

Dockerfile:

FROM ubuntu:12.04
RUN apt-get update

RUN apt-get install -y gcc libc-dev-bin libc6 libc6-dev libssl-dev libkrb5-dev comerr-dev

RUN apt-get install -y postgresql-common libpq-dev postgresql-9.1-postgis --fix-missing
RUN apt-get install -y postgresql postgresql-client

USER postgres

ENV PGDATA /etc/postgresql/9.1/main
ENV LOGDIR  /etc/postgresql/9.1/main/postgresql.log

WORKDIR /usr/lib/postgresql/9.1/bin
USER root
RUN apt-get install -y vim
USER postgres
RUN sed -e '90d' -i /etc/postgresql/9.1/main/pg_hba.conf
RUN sed -e '91d' -i /etc/postgresql/9.1/main/pg_hba.conf

RUN echo "host all all 0.0.0.0/0 trust" >> '/etc/postgresql/9.1/main/pg_hba.conf'
RUN echo "local all all trust" >> '/etc/postgresql/9.1/main/pg_hba.conf'

RUN ./pg_ctl start && sleep 8 && ./createdb pg && ./createdb bloodstone \
    && createuser -Upostgres -s venti \
    && createdb -Uventi -Oventi venti

# ENTRYPOINT ./pg_ctl start && bash -c "while true; do echo "" > /dev/null; sleep 1; done" 

VOLUME $PGDATA
EXPOSE 5432
il vous manque de l'-p (paramètre de port avant de 5432:5432 ) dans la commande si elle n'est pas une faute de frappe
Désolé, c'est juste une faute de frappe...
Est votre conteneur toujours en cours d'exécution après la sortie de l'exécution de conteneur ? Parce que vous n'êtes pas démarrer avec le paramètre-d
Pendant le débogage, je n'ai pas de sortie du récipient, de sorte qu'il exécute toujours au moins maintenant.
Semble que je n'ai pas l'postgresql listen_addresses public. J'ai donc ajouter cette ligne: RUN sed -e "s/[#]\?listen_addresses = .*/listen_addresses = '*'/g" -i '/etc/postgresql/9.1/main/postgresql.conf'. Semble résolu le problème, encore merci!

OriginalL'auteur kxxoling | 2015-06-11