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を変数にしてシェル書いとくと楽かも。。。