Dockerコンテナのsystemd「インストールネームスペースを設定できません」

Dockerコンテナのsystemd「インストールネームスペースを設定できません」

私は最近、DebianstretchからDebianbusterに内部的にsystemdを使用するDockerを更新しました。
それ以降は動作しません。

したがって、systemctl status名前空間をそれに応じて設定することはできません。

Dec 10 14:22:11 f6f3e33e6bf2 systemd[1]: Starting OpenVPN tunnel for apu__ssl_vpn_config...
Dec 10 14:22:11 f6f3e33e6bf2 systemd[1736]: openvpn-client@apu__ssl_vpn_config.service: Failed to set up mount namespacing: Permission denied
Dec 10 14:22:11 f6f3e33e6bf2 systemd[1736]: openvpn-client@apu__ssl_vpn_config.service: Failed at step NAMESPACE spawning /usr/sbin/openvpn: Permission denied
Dec 10 14:22:11 f6f3e33e6bf2 systemd[1]: openvpn-client@apu__ssl_vpn_config.service: Main process exited, code=exited, status=226/NAMESPACE
Dec 10 14:22:11 f6f3e33e6bf2 systemd[1]: openvpn-client@apu__ssl_vpn_config.service: Failed with result 'exit-code'.
Dec 10 14:22:11 f6f3e33e6bf2 systemd[1]: Failed to start OpenVPN tunnel for apu__ssl_vpn_config.

私はelasticsearchに似た問題が発生し、私のユニット構成に次の内容を含む行を追加することで問題を解決しました。

[Service]
PrivateTmp=false
NoNewPrivileges=yes

しかし残念ながら、今回は問題は解決されませんでした。

また、LXC(またはLXD?)を使用するとこの問題が発生することがわかりました。しかし、dockerを使用してこの問題を解決する方法がわかりません。

また、次のようにコンテナを起動します。

docker run -dt \
    --tmpfs /run --tmpfs /tmp \
    --volume /sys/fs/cgroup:/sys/fs/cgroup:ro \
    --device=/dev/net/tun \
    --cap-add SYS_ADMIN \
    --cap-add NET_ADMIN \
    <container>

どんなアドバイスも本当にありがとうございます。

ベストアンサー1

次のように特権モードでコンテナを実行する必要があることがわかりました。 (
またCAP_SYS_ADMIN必要ありません)

docker run -dt \
    --tmpfs /run --tmpfs /tmp \
    --volume /sys/fs/cgroup:/sys/fs/cgroup:ro \
    --device=/dev/net/tun \
    --cap-add NET_ADMIN \
    --privileged \
    <container>

おすすめ記事