Hack
nsenter
Section titled “nsenter”nsenter(1)を使うことで、コンテナのNamespaceでコマンドを実行することができる。
例えば、nginxコンテナにiproute2が入っていなかったとしても、ホスト側のipコマンドを使ってコンテナのIPアドレスを確認することができる。
$ sudo docker exec -it d4822853e05e /bin/bashroot@d4822853e05e:/# ip abash: ip: command not found
$ sudo docker inspect --format {{.State.Pid}} d4822853e05e12699$ sudo nsenter --target 12699 --net ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever7: eth0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever