gpt4 book ai didi

docker从容器连接到主机隧道

转载 作者:行者123 更新时间:2023-12-02 09:51:16 26 4
gpt4 key购买 nike

我想从 Docker 容器内部连接到使用主机中隧道的 postgres 数据库。在主机中,我有一个指向数据库主机的隧道:

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

隧道设置为:

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 user@remotehost

并且我可以从主机启动 psql 命令:

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,因为 docker 未正确将容器端口公开给主机,请参阅:https://github.com/docker/compose/issues/3442 ] 我读到我必须使用容器ip:

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

但是当我进入容器内部时:

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?

我缺少什么吗?

最佳答案

您错过了bind_address,所以现在您的绑定(bind)地址是127.0.0.1。设置隧道时,您必须添加bind_address参数。

-L [bind_address:]port:host:hostport

例如

sudo ssh -f -N -L 172.17.0.1:5555:localhost:5432 user@remotehost

关于docker从容器连接到主机隧道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40782404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com