2016-11-24 7 views
2

ホストのトンネルを使用しているpostgres dbで私のドッカーコンテナの内部から接続したいと思います。ホストでは、私は、DBホストを指すのトンネルがあります。Dockerがコンテナからホストトンネルに接続しています

host$ sudo netstat -tulpen | grep 555 
tcp  0  0 127.0.0.1:5555   0.0.0.0:*    LISTEN  1000  535901  18361/ssh  
tcp6  0  0 ::1:5555    :::*     LISTEN  1000  535900  18361/ssh  

トンネルが持つセットアップです:私はpsqlのコマンドを起動することができ

host$ ps -aux | grep 18361 
ubuntu 9619 0.0 0.0 10432 628 pts/0 S+ 10:11 0:00 grep --color=auto 18361 
ubuntu 18361 0.0 0.0 46652 1420 ?  Ss Nov16 0:00 ssh -i /home/ubuntu/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -f -N -L 5555:localhost:5432 [email protected] 

とホストから:

host$ psql -h localhost -p 5555 --username user db_name 
psql (9.3.15, server 9.5.4) 
SSL connection (cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256) 
Type "help" for help. 
db_name=# 

私はネットワークモードを使用していますので、BRIDGE [HOSTを使用することはできません。ドッキングが正しくコンテナを公開していないためです参照ホストするポート:しかし、私は、コンテナの内側に行くとき

3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:6c:01:5c:a5 brd ff:ff:ff:ff:ff:ff 
    inet 172.17.0.1/16 scope global docker0 
     valid_lft forever preferred_lft forever 
    inet6 fe80::42:6cff:fe01:5ca5/64 scope link 

この場合には172.17.0.1

されるであろう::https://github.com/docker/compose/issues/3442]私は、コンテナIPを使用する必要があること読み

host$ docker exec -ti container_name /bin/bash 

私は私が持って接続しよう:

container# psql -h 172.17.0.1 -p 5555                                                
psql: could not connect to server: Connection refused 
    Is the server running on host "172.17.0.1" and accepting 
    TCP/IP connections on port 5555? 

私は行方不明のものは何ですか?

答えて

5

あなたはbind_addressが見つからなかったので、バインディングアドレスは127.0.0.1です。 トンネルを設定するには、bind_addressパラメータを追加する必要があります。

-L [bindするアドレス:]ポート:ホスト:ホスト側

例えば

sudo ssh -f -N -L 172.17.0.1:5555:localhost:5432 [email protected] 
関連する問題