最近希望给一个服务器启动一个独立的 openssh-server 容器用于安全转发内部接口请求,发现 linuxserver/openssh-server 镜像非常适合这一场景。
不过这个镜像默认是不开启 TCP 转发的,官方提供了一个较为优雅的模块插件机制来实现类似功能,模块可以在这里找到:Linuxserver Container Mods。只要配置环境变量 DOCKER_MODS=linuxserver/mods:openssh-server-ssh-tunnel
就可以自动加载了。

看起来模块只是一些脚本,具体的实现在这里:docker-mods/root/etc/s6-overlay/s6-rc.d/init-mod-openssh-server-ssh-tunnel-setup/run at f7fc561d103d6832bb75a4cb4f575b1166180430 · linuxserver/docker-mods · GitHub。
那么模块是怎么被拉取的呢,离线的私有化场景中怎么处理?可以在这里找到:docker-mods/docker-mods.v3 at cac9e7450a0698f19d750b67db61c4aa214d5290 · linuxserver/docker-mods。
也就是说,模块实际上都是 Docker 镜像,并且这个脚本已经支持了自定义制品库拉取,我们应该可以编写自己的模块,放到私仓,然后在离线环境中拉取并加载使用了。有空的时候来测试一下这个场景。
发表回复