将postgres端口转发到docker-toolbox的容器中

时间:2018-08-16 10:32:52

标签: docker portforwarding docker-toolbox

我想在Windows 10(而非Pro)泊坞窗中使用metabase,以访问来自远程PostgreSQL实例转发的SSH端口的数据。

  1. 我已经设置了Putty,以将端口从远程主机端口5432转发到本地127.0.0.1:5432。我可以使用在本地主机上运行的pgAdmin连接到远程数据库。 ✔
  2. 我已经设置了Virtualbox docker主机映像,以将NAT主机端口127.0.0.1:5432从NAT端口转发到来宾端口5432(不提供IP)。
  3. 我已经运行docker-machine ip default来找到Docker主机的IP。这是192.168.99.100✔
  4. 最后,我将配置数据库docker环境变量设置为 docker run -d -p 3000:3000 \ -e "MB_DB_TYPE=postgres" \ -e "MB_DB_DBNAME=<my db name>" \ -e "MB_DB_PORT=5432" \ -e "MB_DB_USER=<username>" \ -e "MB_DB_PASS=<password>" \ -e "MB_DB_HOST=192.168.99.100" \ --name metabase metabase/metabase

仍然无法连接到postgres实例。 我的设置可能有什么问题?我应该在哪个步骤提供正确的IP错误?在步骤3之后如何轻松测试我的数据库应该可以从docker容器中访问?

``` 08-16 10:23:07 INFO metabase.util ::加载元数据库... 08-16 10:23:15 INFO util.encryption ::对于此配置数据库实例,已保存的凭据加密被禁用。 有关更多信息,请参见https://www.metabase.com/docs/latest/operations-guide/start.html#encrypting-your-database-connection-details-at-rest 08-16 10:23:33 INFO metabase.core ::以STANDALONE模式启动元数据库 08-16 10:23:33 INFO metabase.core ::使用配置启动嵌入式Jetty Web服务器:  {:port 3000,:host“ 0.0.0.0”}

08-16 10:23:33 INFO metabase.core ::启动Metabase版本v0.30.0(04836dc版本-0.30.0)... 08-16 10:23:33 INFO metabase.core ::系统时区为'GMT'... 警告:可以吗?已经引用:#'clojure.core /任何?在命名空间:monger.collection中,被替换为:#'monger.collection / any? 08-16 10:23:35 INFO metabase.core ::设置和迁移Metabase数据库。请坐紧,这可能需要一分钟... 08-16 10:23:35 INFO metabase.db ::验证postgres数据库连接... 2018年8月16日上午10:23:36 org.postgresql.core.v3.ConnectionFactoryImpl日志 警告:连接到192.168.99.100:5432时发生ConnectException java.net.ConnectException:连接被拒绝(连接被拒绝)         在java.net.PlainSocketImpl.socketConnect(本地方法)         在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)         在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)         在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)         在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)         在java.net.Socket.connect(Socket.java:589)         在org.postgresql.core.PGStream。(PGStream.java:69)         在org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:156)         在org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)         在org.postgresql.jdbc.PgConnection。(PgConnection.java:195)         在org.postgresql.Driver.makeConnection(Driver.java:452)         在org.postgresql.Driver.connect(Driver.java:254)         在java.sql.DriverManager.getConnection(DriverManager.java:664)         在java.sql.DriverManager.getConnection(DriverManager.java:208)         在clojure.java.jdbc $ get_connection.invokeStatic(jdbc.clj:370)         在clojure.java.jdbc $ get_connection.invoke(jdbc.clj:229)         在clojure.java.jdbc $ db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1023)         在clojure.java.jdbc $ db_query_with_resultset_STAR_.invoke(jdbc.clj:1005)         在clojure.java.jdbc $ query.invokeStatic(jdbc.clj:1099)         在clojure.java.jdbc $ query.invoke(jdbc.clj:1056)         在clojure.java.jdbc $ query.invokeStatic(jdbc.clj:1072)         在clojure.java.jdbc $ query.invoke(jdbc.clj:1056)         在metabase.driver.generic_sql $ can_connect_QMARK_.invokeStatic(generic_sql.clj:209)         在metabase.driver.generic_sql $ can_connect_QMARK_.invoke(generic_sql.clj:206)         在metabase.driver $ fn__28294 $ G__28047__28301.invoke(driver.clj:104)         在metabase.driver $ can_connect_with_details_QMARK_ $ fn__28424.invoke(driver.clj:516)         在clojure.core $ binding_conveyor_fn $ fn__5476.invoke(core.clj:2022)         在clojure.lang.AFn.call(AFn.java:18)         在java.util.concurrent.FutureTask.run(FutureTask.java:266)         在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)         在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)         在java.lang.Thread.run(Thread.java:745)

2018年8月16日上午10:23:36 org.postgresql.Driver Connect 严重:连接错误: org.postgresql.util.PSQLException:到192.168.99.100:5432的连接被拒绝。检查主机名和端口是否正确以及邮局主管正在接受TCP / IP连接。         在org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:245)         在org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)         在org.postgresql.jdbc.PgConnection。(PgConnection.java:195)         在org.postgresql.Driver.makeConnection(Driver.java:452)         在org.postgresql.Driver.connect(Driver.java:254)         在java.sql.DriverManager.getConnection(DriverManager.java:664)         在java.sql.DriverManager.getConnection(DriverManager.java:208)         在clojure.java.jdbc $ get_connection.invokeStatic(jdbc.clj:370)         在clojure.java.jdbc $ get_connection.invoke(jdbc.clj:229)         在clojure.java.jdbc $ db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1023)         在clojure.java.jdbc $ db_query_with_resultset_STAR_.invoke(jdbc.clj:1005)         在clojure.java.jdbc $ query.invokeStatic(jdbc.clj:1099)         在clojure.java.jdbc $ query.invoke(jdbc.clj:1056)         在clojure.java.jdbc $ query.invokeStatic(jdbc.clj:1072)         在clojure.java.jdbc $ query.invoke(jdbc.clj:1056)         在metabase.driver.generic_sql $ can_connect_QMARK_.invokeStatic(generic_sql.clj:209)         在metabase.driver.generic_sql $ can_connect_QMARK_.invoke(generic_sql.clj:206)         在metabase.driver $ fn__28294 $ G__28047__28301.invoke(driver.clj:104)         在metabase.driver $ can_connect_with_details_QMARK_ $ fn__28424.invoke(driver.clj:516)         在clojure.core $ binding_conveyor_fn $ fn__5476.invoke(core.clj:2022)         在clojure.lang.AFn.call(AFn.java:18)         在java.util.concurrent.FutureTask.run(FutureTask.java:266)         在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)         在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)         在java.lang.Thread.run(Thread.java:745) 引起原因:java.net.ConnectException:连接被拒绝(连接被拒绝)         在java.net.PlainSocketImpl.socketConnect(本地方法)         在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)         在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)         在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)         在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)         在java.net.Socket.connect(Socket.java:589)         在org.postgresql.core.PGStream。(PGStream.java:69)         在org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:156)         ...还有24个

08-16 10:23:36错误metabase.driver ::无法连接到数据库:org.postgresql.util.PSQLException:到192.168.99.100:5432的连接被拒绝。检查主机名和端口是否正确以及邮局主管正在接受TCP / IP连接。 08-16 10:23:36错误metabase.core ::元数据库初始化失败 java.lang.AssertionError:断言失败:无法连接到Metabase postgres DB。 (绑定[ allow-potentailly-unsafe-connections true](需要(quote metabase.driver))(((解决(quote metabase.driver / can-connect-with-details?))引擎详细信息) )         在metabase.db $ verify_db_connection.invokeStatic(db.clj:365)         在metabase.db $ verify_db_connection.invoke(db.clj:358)         在metabase.db $ verify_db_connection.invokeStatic(db.clj:361)         在metabase.db $ verify_db_connection.invoke(db.clj:358)         在metabase.db $ setup_db_BANG_.invokeStatic(db.clj:427)         在metabase.db $ setup_db_BANG_.doInvoke(db.clj:421)         在clojure.lang.RestFn.invoke(RestFn.java:421)         在metabase.core $ init_BANG_.invokeStatic(core.clj:161)         在metabase.core $ init_BANG_.invoke(core.clj:138)         在metabase.core $ start_normally.invokeStatic(core.clj:245)         在metabase.core $ start_normally.invoke(core.clj:239)         在metabase.core $ _main.invokeStatic(core.clj:265)         在metabase.core $ _main.doInvoke(core.clj:260)         在clojure.lang.RestFn.invoke(RestFn.java:397)         在clojure.lang.AFn.applyToHelper(AFn.java:152)         在clojure.lang.RestFn.applyTo(RestFn.java:132)         在metabase.core.main(未知来源) 08-16 10:23:36 INFO metabase.core ::元数据库关闭... 08-16 10:23:36 INFO metabase.core ::元数据库关闭完成 ```

0 个答案:

没有答案