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

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

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

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

  1. コンテナのプロセスid確認
docker inspect -f '{{.State.Pid}}' コンテナ名
  1. netnsのシンボリックリンク貼る
ln -s /proc/コンテナのPid/ns/net /var/run/netns/コンテナのPid
  1. スタティックルート書く
ip netns exec コンテナのPid ip route add 宛先NW via gw

#または

ip netns exec コンテナのPid bash
ip route add 宛先NW via gw
exit
  1. シンボリック消す]
unlink /var/run/netns/コンテナのPid

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

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

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

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

と言う発想が元。

続きを読む