项目地址: https://github.com/shynome/dcip
用例: 主机上用 Docker 搭建的 Postgres 数据库, 因为安全问题未暴露外部可访问的端口, 这下该怎么进行数据库的管理呢? 我经过一番搜索发现每个容器都有一个 17.17.0.x/16 的 IP 用于和主机通信, 可以直接访问这个 IP 进行管理, 但要在本地管理的话就要通过 SSH 端口转发到本地, 于是就会变得很繁琐:
docker network inspect bridge --format '{{range $k,$c:=.Containers}}{{$k}}/{{.IPv4Address}}{{println}}{{end}}'
grep $(docker ps --latest -q --no-trunc --filter='name=postgres')
ssh -NT -L 0.0.0.0:5432:172.17.0.2:5432 debian@example.host
这字也太多了, 所以我写了这个程序把上面的命令简化成了 dcip of debian@example.host postgres
用法:
dcip of debian@example.host postgres
获取主机上的容器 IPdcip of postgres
获取本机上的容器 IPdcip export debian@example.host postgres:5432
将主机上的容器端口暴露到本地这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.