dockerコンテナにスタティックルート

docker コンテナ内でstatic routeを設定するときの覚え書き

docker runのオプションに–cap-add=NET_ADMIN付ける
※–privilegedは非推奨。。。

–cap_add=NET_ADMINをつけないでdockerコンテナにスタティックルート書く方法

1.コンテナのプロセスid確認

docker inspect -f '{{.State.Pid}}' コンテナ名

2.netnsのシンボリックリンク貼る

ln -s /proc/コンテナのPid/ns/net /var/run/netns/コンテナのPid

3.スタティックルート書く

ip netns exec コンテナのPid ip route add 宛先NW via gw

又は

ip netns exec コンテナのPid bash
ip route add 宛先NW via gw
exit

4.シンボリック消す

unlink /var/run/netns/コンテナのPid

Pidを変数にしてシェル書いとくと楽かも。。。

docker+squidで閉鎖網用プロクシたてた時の詰まりポイントいくつか

お仕事中、dockerコンテナはapt-getやyumで外出られるのに、
こっちの作業端末は閉鎖網から繋いでるから外に出られなくて、調べ物等で色々不便だったので、

閉鎖網PC~開放網dockerコンテナ間の接続が可能な状況において、
dockerコンテナをプロキシサーバにしたら、もしかして閉鎖網からインターネットにアクセスできたりする…?

と言う発想が元。

続きを読む