Dockerコンテナ内でOpenVPNクライアントを実行する方法は?

Dockerコンテナ内でOpenVPNクライアントを実行する方法は?

Dockerコンテナ内でOpenVPNクライアントを実行したいです。仮テストで以下を試しました。

docker run -it --rm --cap-add=NET_ADMIN --device /dev/net/tun -v $PWD:$PWD ubuntu bash

in the container:

apt-get update && apt-get install -y openvpn
openvpn --config myconfig.ovpn

-v $PWD:$PWD(一時テストのために、OpenVPN設定をコンテナに入れるためのボリュームマウントを追加しました。)

それから突然ロギングを始めました。

Fri Jul 12 17:19:37 2019 /sbin/ip -6 addr add <ip>/64 dev tun0
RTNETLINK answers: Permission denied
Fri Jul 12 17:19:37 2019 Linux ip -6 addr add failed: external program exited with error status: 2
Fri Jul 12 17:19:37 2019 Exiting due to fatal error

IPv6にはいくつかの問題があるようですが、今はどうすればよいのかわかりません。

上記を繰り返して追加する--net=hostことで、docker runすべてがうまくいきます。しかし、それは私が本当に欲しいものではありません。 OpenVPNクライアントがコンテナから隔離されて実行されることを望みます。

それほど価値があるので、IPv6は必要ありません。 VPNネットワークからアクセスできるすべてのホストはIPv4を介してアクセスできます。

ベストアンサー1

私は成功した。 IPv6を手動で有効にする必要があるようです。

docker run -it --rm --cap-add=NET_ADMIN --device /dev/net/tun \
           --sysctl net.ipv6.conf.all.disable_ipv6=0 -v $PWD:$PWD \
           ubuntu bash

おすすめ記事