Postgres Docker – unable to connect from remote server

I am using postgres:9.5.3 docker image. I am starting the containers and then trying to connect to the psql database from a remote host but each time it fails with the error:

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

In my docker-compose file, I am mounting the pg_hba.conf. This is my docker-compose file:

  • Linking container with docker-compose
  • Docker and Youtrack over SSL
  • Attempting to access USB device from Docker in Windows
  • Why can't I ping docker container?
  • Docker removes downloaded files
  • Control a container from another one
  • services:
            - test
          image: postgres:9.5.3
            - 5432
            - ./pgdata/:/var/lib/postgresql/data
            - ./pg_hba.conf/:/var/lib/postgresql/data/pg_hba.conf

    I have modified my pg_hba.conf file to accept remote connections from all hosts based on the instructions here. My pg_hba.conf is as follows:

    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    # "local" is for Unix domain socket connections only
    local   all             all                                     trust
    # IPv4 local connections:
    host    all             all                  trust
    # IPv6 local connections:
    host    all             all             ::0/0                   trust
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    #local   replication     postgres                                trust
    #host    replication     postgres            trust
    #host    replication     postgres        ::1/128                 trust
    host all all md5

    And my postgresql.conf has the following line too: listen_addresses = '*'

    When I try to connect to the database from the host I am running the container on, it connects successfully. But when I try to connect from any remote machine using the command psql -h -U postgres -d postgres -p 5432, it gives me the connection error that means remote connections are not working. With all these settings, I would expect it to connect. What am I missing here?

  • MariaDB never starts within docker image
  • Fluentd - Using source tag as index
  • Use a certain FROM layer in Dockerfile
  • Elasticsearch Unreachable: Connection refused
  • docker-compose don't load additional env-file defined in yaml file
  • Can't access Docker images when using user namespace
  • One Solution collect form web for “Postgres Docker – unable to connect from remote server”

    It doesn’t seem like you are actually publishing the exposed port.

    instead of:

      - 5432


     - "5432:5432"

    expose docs:

    Expose ports without publishing them to the host machine – they’ll
    only be accessible to linked services. Only the internal port can be

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.