一个 用于获取 Docker 容器与主机通信的 IP 和 转发容器端口到本地 的工具

2021-05-12 09:30:43 +08:00
 shynome

项目地址: https://github.com/shynome/dcip

用例: 主机上用 Docker 搭建的 Postgres 数据库, 因为安全问题未暴露外部可访问的端口, 这下该怎么进行数据库的管理呢? 我经过一番搜索发现每个容器都有一个 17.17.0.x/16 的 IP 用于和主机通信, 可以直接访问这个 IP 进行管理, 但要在本地管理的话就要通过 SSH 端口转发到本地, 于是就会变得很繁琐:

  1. ssh 连接上主机找出容器 IP:
    1. 找出所有容器的 IP docker network inspect bridge --format '{{range $k,$c:=.Containers}}{{$k}}/{{.IPv4Address}}{{println}}{{end}}'
    2. 过滤出对应容器的 IP grep $(docker ps --latest -q --no-trunc --filter='name=postgres')
  2. 进行端口转发 ssh -NT -L 0.0.0.0:5432:172.17.0.2:5432 debian@example.host

这字也太多了, 所以我写了这个程序把上面的命令简化成了 dcip of debian@example.host postgres

用法:

项目地址: https://github.com/shynome/dcip

795 次点击
所在节点    Docker
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/776380

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX