Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从同一台物理机器访问docker上运行的PostgreSQL_Postgresql_Docker - Fatal编程技术网

从同一台物理机器访问docker上运行的PostgreSQL

从同一台物理机器访问docker上运行的PostgreSQL,postgresql,docker,Postgresql,Docker,我是docker的新手,下面是启动postgreSQL的Dockerfile部分: RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/s

我是docker的新手,下面是启动postgreSQL的Dockerfile部分:

RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8

RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list

RUN apt-get update && apt-get install -y python-software-properties software-properties-common postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3

USER postgres

RUN    /etc/init.d/postgresql start &&\
    psql --command "CREATE USER postgres1 WITH SUPERUSER PASSWORD 'password';" &&\
    createdb -O postgres1 password

RUN echo "host all  all    0.0.0.0/0  md5" >> /etc/postgresql/9.3/main/pg_hba.conf

RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf

EXPOSE 5432

VOLUME  ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]

CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"]    
我用命令运行docker

docker run -p 5432:4006 c00d99a4b93e
启动Docker后记录:

$ docker run -p 8080:4005 -p 5432:4006 c00d99a4b93e
2017-10-09 06:36:03.547 UTC [5] LOG:  database system was interrupted; last known up at 2017-10-09 06:24:12 UTC
2017-10-09 06:36:03.586 UTC [5] LOG:  database system was not properly shut down; automatic recovery in progress
2017-10-09 06:36:03.587 UTC [5] LOG:  redo starts at 0/1784DA8
2017-10-09 06:36:03.587 UTC [5] LOG:  record with zero length at 0/1784DE8
2017-10-09 06:36:03.587 UTC [5] LOG:  redo done at 0/1784DA8
2017-10-09 06:36:03.587 UTC [5] LOG:  last completed transaction was at log time 2017-10-09 06:24:12.415859+00
2017-10-09 06:36:03.592 UTC [5] LOG:  MultiXact member wraparound protections are now enabled
2017-10-09 06:36:03.596 UTC [1] LOG:  database system is ready to accept connections
2017-10-09 06:36:03.602 UTC [9] LOG:  autovacuum launcher started
我正在尝试使用pgAdmin从本地计算机连接到此数据库

我已尝试连接到: 0.0.0.0:4006 127.0.0.1:4006

但我得到了一个例外

这是Docker ps的输出

$  docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                          NAMES
72191e69bf5a        c00d99a4b93e        "/usr/lib/postgresql/"   39 seconds ago      Up 37 seconds       5432/tcp, 8009/tcp, 8080/tcp, 0.0.0.0:8080->4005/tcp, 0.0.0.0:5432->4006/tcp   modest_lalande

你能帮我解释一下我做错了什么吗?

这些应该颠倒过来:

-p 8080:4005 -p 5432:4006
为此:

 -p 4005:8080 -p 4006:5432

此外,如果您在windows上使用docker和docker工具箱,则机器的ip默认情况下会不同192.168.99.100而不是本地主机

这是在windows上还是在linux上?在windows机器上