从同一个物理机器访问docker上运行的PostgreSQL
我是新来的docker,下面是我的Dockerfile部分启动postgreSQL:
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后logging:
$ 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
但我得到连接拒绝exception。
这里是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
另外,如果您使用docker工具箱在窗口上使用docker,则该机器的ip将会不同(默认情况下,不是localhost,则为192.168.99.100)
- 在使用docker命令创build并提交更改后无法看到文件
- 为什么在构build时不postgres官方docker回购启动数据库服务?
- 如何监听docker事件并在新事件发出时运行命令?
- 使用mysql-client从Alpine Docker映像内部通过SSL连接到Amazon RDS。 并validation证书
- 如何为Docker TLS使用go Daddy SSL证书
- 使用Docker:如何扭曲Web应用程序与nginx Web服务器进行通信
- 在泊坞窗外保存的文件作为docker卷被损坏
- 适用于Windows的Docker:此系统上不存在pipe理程序
- 如何将Angular项目添加到Django和Docker