それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

LXC・LXD のコンテナのポートを外部に公開する docker expose的なやつ

lxc で外部にポートを公開する。

docker だと expose で手軽にできるんだけど、LXCだとiptables使えとか forwarding しろとかめんどくさいので、もっと簡単にポート転送できるものがないか調べた。

プロキシで飛ばせる

たとえば、nginx-container があって、ホスト側のIPを内部にそのまま出すには。

lxc config device add nginx-container my-https proxy  listen=tcp:192.168.12.10:443 connect=tcp:10.185.93.215:443 bind=host
lxc config device add nginx-container my-http proxy  listen=tcp:192.168.12.10:80 connect=tcp:10.185.93.215:80 bind=host

設定の確認

lxc config show nginx-container

これで設定されているプロキシ転送を確認することが出来る。もうすこし楽ちんでも良さそうなものだが。

lxc config proxy お手軽。

proxy で nginx のコンテナを作ってポート転送しておけば、LXCの内部側にいくらでもサービス用にコンテナを起動できて便利。

macvlan や bridge で共有してると、だんだんIPやポートが膨大になってきて頭がおかしくなりそうなので、nginx で一旦中継しちゃうのが便利。

nginx は、比較的なんでも転送できるので、sshpostfix などでも転送できるでちょっとしたルーター代わりにあげておくと便利。

参考資料

https://hnakamur.github.io/blog/2018/07/05/port-forwarding-using-lxd-proxy/