DockerのRootless modeのセットアップを試してみた。
設定すればデフォルトではroot権限が必要なDockerを一般ユーザーでも使えるモードで動作させることができる。
現在はDockerをパッケージインストールすると、Rootless mode用のセットアップスクリプトも依存でインストールされるようになっている。
ちなみにPodmanはデフォルトでRootlessで動作する。
前提
Ubuntu 20.04であれば特に無いが、Debian Busterだと必要なパッケージが公式リポジトリに無いためインストールに失敗する。(後述)
今回の環境は以下の通り。
zaki@ubuntu-node:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS"
準備
Prerequisitesの通り、uidmap
をインストールする。
zaki@ubuntu-node:~$ apt search uidmap Sorting... Done Full Text Search... Done uidmap/focal-updates 1:4.8.1-1ubuntu5.20.04 amd64 programs to help use subuids
入ってないので入れる。
$ sudo apt install uidmap
zaki@ubuntu-node:~$ id -u 1000 zaki@ubuntu-node:~$ whoami zaki zaki@ubuntu-node:~$ grep ^$(whoami): /etc/subuid zaki:100000:65536 zaki@ubuntu-node:~$ grep ^$(whoami): /etc/subgid zaki:100000:65536
ディストリビューション毎の設定
Ubuntuの場合は特に準備無し。
その他はドキュメントのDistribution-specific hintの内容を確認する。
例えばDebianの場合は以下。カーネルパラメタを設定する。
Add kernel.unprivileged_userns_clone=1 to /etc/sysctl.conf (or /etc/sysctl.d) and run sudo sysctl --system.
https://docs.docker.com/engine/security/rootless/#distribution-specific-hint
要は以下のコマンドを実行すればOK.
# echo "kernel.unprivileged_userns_clone=1" > /etc/sysctl.d/rootless-docker.conf
設定したカーネルパラメタを確認。
zaki@debian-node:~$ cat /proc/sys/kernel/unprivileged_userns_clone 0 zaki@debian-node:~$ sudo sh -c 'echo "kernel.unprivileged_userns_clone=1" > /etc/sysctl.d/rootless-docker.conf' zaki@debian-node:~$ cat /proc/sys/kernel/unprivileged_userns_clone 1
インストール
通常のDocker未インストールの場合
docker-ce-rootless-extras
をインストールする。
インストールするにはDockerインストール用のリポジトリを追加する必要があるため、各ディストリビューション用のインストール手順を確認する。
Ubuntuであれば以下の通り。
(ほかのディストリビューションも、docker-ce
をinstallする直前まで進めれば良い)
$ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg $ echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null $ sudo apt-get update
設定すればapt
でインストールできるようになる。
zaki@debian-node:~$ apt search docker-ce-rootless-extras ソート中... 完了 全文検索... 完了 docker-ce-rootless-extras/buster 5:20.10.5~3-0~debian-buster amd64 Rootless support for Docker.
ただし、docker-ce-rootless-extras
をインストールすると依存でdocker-ce
も入るため、以下の「通常のDockerがインストール済みの場合」のサービス停止を確認する。
zaki@ubuntu-node:~$ which docker /usr/bin/docker
通常のDockerがインストール済みの場合
Dockerは止める。
Note
If the system-wide Docker daemon is already running, consider disabling it: $ sudo systemctl disable --now docker.service
zaki@ubuntu-node:~$ systemctl is-active docker active zaki@ubuntu-node:~$ systemctl is-enabled docker enabled
Ubuntuだとインストールしただけでenabledになってるので。
zaki@ubuntu-node:~$ sudo systemctl disable --now docker Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable docker Removed /etc/systemd/system/multi-user.target.wants/docker.service. Warning: Stopping docker.service, but it can still be activated by: docker.socket zaki@ubuntu-node:~$ systemctl is-active docker inactive zaki@ubuntu-node:~$ systemctl is-enabled docker disabled
install
パッケージ版Dockerをインストールすると、Rootless modeのDockerインストールのためのスクリプトは /usr/bin/dockerd-rootless-setuptool.sh
にある。
zaki@ubuntu-node:~$ which dockerd-rootless-setuptool.sh /usr/bin/dockerd-rootless-setuptool.sh
このスクリプトをRootlessで実行したい一般ユーザーでinstall
を引数に指定して実行する。
zaki@ubuntu-node:~$ dockerd-rootless-setuptool.sh install [INFO] Creating /home/zaki/.config/systemd/user/docker.service [INFO] starting systemd service docker.service + systemctl --user start docker.service + sleep 3 + systemctl --user --no-pager --full status docker.service ● docker.service - Docker Application Container Engine (Rootless) Loaded: loaded (/home/zaki/.config/systemd/user/docker.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2021-03-05 00:12:24 UTC; 3s ago Docs: https://docs.docker.com/engine/security/rootless/ Main PID: 75116 (rootlesskit) CGroup: /user.slice/user-1000.slice/user@1000.service/docker.service ├─75116 rootlesskit --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /usr/bin/dockerd-rootless.sh ├─75129 /proc/self/exe --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /usr/bin/dockerd-rootless.sh ├─75146 slirp4netns --mtu 65520 -r 3 --disable-host-loopback --enable-sandbox --enable-seccomp 75129 tap0 ├─75153 dockerd └─75166 containerd --config /run/user/1000/docker/containerd/containerd.toml --log-level info Mar 05 00:12:24 ubuntu-node dockerd-rootless.sh[75153]: time="2021-03-05T00:12:24.859622362Z" level=warning msg="Your kernel does not support CPU realtime scheduler" Mar 05 00:12:24 ubuntu-node dockerd-rootless.sh[75153]: time="2021-03-05T00:12:24.859699390Z" level=warning msg="Your kernel does not support cgroup blkio weight" Mar 05 00:12:24 ubuntu-node dockerd-rootless.sh[75153]: time="2021-03-05T00:12:24.859760290Z" level=warning msg="Your kernel does not support cgroup blkio weight_device" Mar 05 00:12:24 ubuntu-node dockerd-rootless.sh[75153]: time="2021-03-05T00:12:24.859931829Z" level=info msg="Loading containers: start." Mar 05 00:12:25 ubuntu-node dockerd-rootless.sh[75153]: time="2021-03-05T00:12:25.105917170Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address" Mar 05 00:12:25 ubuntu-node dockerd-rootless.sh[75153]: time="2021-03-05T00:12:25.315884736Z" level=info msg="Loading containers: done." Mar 05 00:12:25 ubuntu-node dockerd-rootless.sh[75153]: time="2021-03-05T00:12:25.324807056Z" level=warning msg="Not using native diff for overlay2, this may cause degraded performance for building images: failed to set opaque flag on middle layer: operation not permitted" storage-driver=overlay2 Mar 05 00:12:25 ubuntu-node dockerd-rootless.sh[75153]: time="2021-03-05T00:12:25.325060434Z" level=info msg="Docker daemon" commit=363e9a8 graphdriver(s)=overlay2 version=20.10.5 Mar 05 00:12:25 ubuntu-node dockerd-rootless.sh[75153]: time="2021-03-05T00:12:25.325172424Z" level=info msg="Daemon has completed initialization" Mar 05 00:12:25 ubuntu-node dockerd-rootless.sh[75153]: time="2021-03-05T00:12:25.337548054Z" level=info msg="API listen on /run/user/1000/docker.sock" + DOCKER_HOST=unix:///run/user/1000/docker.sock /usr/bin/docker version Client: Docker Engine - Community Version: 20.10.5 API version: 1.41 Go version: go1.13.15 Git commit: 55c4c88 Built: Tue Mar 2 20:18:20 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.5 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: 363e9a8 Built: Tue Mar 2 20:16:15 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.3 GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b runc: Version: 1.0.0-rc92 GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff docker-init: Version: 0.19.0 GitCommit: de40ad0 + systemctl --user enable docker.service Created symlink /home/zaki/.config/systemd/user/default.target.wants/docker.service → /home/zaki/.config/systemd/user/docker.service. [INFO] Installed docker.service successfully. [INFO] To control docker.service, run: `systemctl --user (start|stop|restart) docker.service` [INFO] To run docker.service on system startup, run: `sudo loginctl enable-linger zaki` [INFO] Make sure the following environment variables are set (or add them to ~/.bashrc): export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/1000/docker.sock
time
つけ忘れたけど10秒もかからなかった。
実行ログの最後に、環境変数設定のメッセージが出ているので、これを設定する。
(/usr/bin
は設定済みなので省略)
zaki@ubuntu-node:~$ export DOCKER_HOST=unix:///run/user/1000/docker.sock
なお、この環境変数は設定するパスを見ても分かる通り、使用するユーザーID毎に異なるため、別のユーザーでも使用する場合は都度dockerd-rootless-setuptool.sh
を設定する。
zaki@ubuntu-node:~$ docker version Client: Docker Engine - Community Version: 20.10.5 API version: 1.41 Go version: go1.13.15 Git commit: 55c4c88 Built: Tue Mar 2 20:18:20 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.5 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: 363e9a8 Built: Tue Mar 2 20:16:15 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.3 GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b runc: Version: 1.0.0-rc92 GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff docker-init: Version: 0.19.0 GitCommit: de40ad0
永続的に設定するには、この環境変数は~/.bashrc
に追記しておく。
コンテナをデプロイ
rootでなく通常ユーザーで、とりあえずwebサーバーをローカルで8080/TCPでlistenする設定で実行。
zaki@ubuntu-node:~$ docker run -d -p 8080:80 --rm --name httpd httpd Unable to find image 'httpd:latest' locally latest: Pulling from library/httpd 45b42c59be33: Pull complete 83ac8490fcc3: Pull complete bdb2d204d86d: Pull complete 243acf75a504: Pull complete 8fc1ad93a9b1: Pull complete Digest: sha256:3c252c919ef2445a6a41dde913a56202754821af87c049c4312bf81bdbc6df4b Status: Downloaded newer image for httpd:latest 0bd290f5a999bf82a3b71cac0d7faf1c9b15ee88567eaa11240ebe870299f379
webアクセス確認。
zaki@ubuntu-node:~$ curl localhost:8080 <html><body><h1>It works!</h1></body></html>
listenしてるポートとプロセスを確認すると、(通常のDockerであればdocker-proxy
のところが)rootlesskit
がlistenしていることを確認できる。
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=688,fd=13)) LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=751,fd=3)) LISTEN 0 4096 *:8080 *:* users:(("rootlesskit",pid=983,fd=9)) LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=751,fd=4))
プロセス確認すると、rootでなく実行ユーザー権限で動作していることが確認できる。
zaki@ubuntu-node:~$ ps aux | grep docker zaki 983 0.0 0.3 633996 13360 ? Ssl 23:23 0:00 rootlesskit --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /usr/bin/dockerd-rootless.sh zaki 1011 0.0 0.3 779716 12660 ? Sl 23:23 0:00 /proc/self/exe --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /usr/bin/dockerd-rootless.sh zaki 1034 0.0 2.2 1020492 89740 ? Sl 23:23 0:00 dockerd zaki 1151 0.0 1.1 898976 47252 ? Ssl 23:23 0:00 containerd --config /run/user/1000/docker/containerd/containerd.toml --log-level info zaki 1582 0.0 0.1 553704 7616 ? Sl 23:32 0:00 /usr/bin/rootlesskit-docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.2 -container-port 80 zaki 1588 0.0 0.1 696508 4452 ? Sl 23:32 0:00 docker-proxy -container-ip 172.17.0.2 -container-port 80 -host-ip 127.0.0.1 -host-port 8080 -proto tcp zaki 1607 0.0 0.1 111908 7752 ? Sl 23:32 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 0bd290f5a999bf82a3b71cac0d7faf1c9b15ee88567eaa11240ebe870299f379 -address /run/user/1000/docker/containerd/containerd.sock zaki 1769 0.0 0.0 6432 672 pts/0 S+ 23:32 0:00 grep --color=auto docker
コンテナの実行状態を確認すると、通常ユーザーでは一覧は見えて、rootユーザーだと何も見えないことを確認できる。
zaki@ubuntu-node:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0bd290f5a999 httpd "httpd-foreground" About a minute ago Up 59 seconds 0.0.0.0:8080->80/tcp httpd zaki@ubuntu-node:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
inspect
を使うと以下の通りユーザーのホームディレクトリ以下が設定されていることがわかる。
zaki@ubuntu-node:~$ docker inspect 0bd2 [ { "Id": "0bd290f5a999bf82a3b71cac0d7faf1c9b15ee88567eaa11240ebe870299f379", ... "Image": "sha256:464fdc577ef4d4ba06050b76a95ffee72d280f7aaa4291f7f4827fca7a00ed0f", "ResolvConfPath": "/home/zaki/.local/share/docker/containers/0bd290f5a999bf82a3b71cac0d7faf1c9b15ee88567eaa11240ebe870299f379/resolv.conf", "HostnamePath": "/home/zaki/.local/share/docker/containers/0bd290f5a999bf82a3b71cac0d7faf1c9b15ee88567eaa11240ebe870299f379/hostname", "HostsPath": "/home/zaki/.local/share/docker/containers/0bd290f5a999bf82a3b71cac0d7faf1c9b15ee88567eaa11240ebe870299f379/hosts", "LogPath": "/home/zaki/.local/share/docker/containers/0bd290f5a999bf82a3b71cac0d7faf1c9b15ee88567eaa11240ebe870299f379/0bd290f5a999bf82a3b71cac0d7faf1c9b15ee88567eaa11240ebe870299f379-json.log", "Name": "/httpd", ...
なお、一般ユーザー権限で動作するので、1024未満のポートは使用できない。(従来からのOSの制限)
zaki@ubuntu-node:~$ docker run -d -p 80:80 --rm httpd 557e475710bab1688172ffc7ed26bf94439551bcb28d2fe564fc5ac6f8e29f6d docker: Error response from daemon: driver failed programming external connectivity on endpoint nostalgic_shamir (4ce60fe6e15f3f5f3af4b85e2eb06d0928a9acb2153f48e7903ba6932ba4d699): Error starting userland proxy: error while calling PortManager.AddPort(): cannot expose privileged port 80, you can add 'net.ipv4.ip_unprivileged_port_start=80' to /etc/sysctl.conf (currently 1024), or set CAP_NET_BIND_SERVICE on rootlesskit binary, or choose a larger port number (>= 1024): listen tcp 0.0.0.0:80: bind: permission denied.
メッセージの通りカーネルパラメタを設定して許可を与えることは可能。
デーモン
ユーザーごとの以下のパスにファイルが作成されている。
zaki@ubuntu-node:~$ cat ~/.config/systemd/user/docker.service [Unit] Description=Docker Application Container Engine (Rootless) Documentation=https://docs.docker.com/engine/security/rootless/ [Service] Environment=PATH=/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin ExecStart=/usr/bin/dockerd-rootless.sh ExecReload=/bin/kill -s HUP $MAINPID TimeoutSec=0 RestartSec=2 Restart=always StartLimitBurst=3 StartLimitInterval=60s LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TasksMax=infinity Delegate=yes Type=simple KillMode=mixed [Install] WantedBy=default.target
systemctl
に--user
オプションを付けて確認可能
zaki@ubuntu-node:~$ systemctl --user status docker ● docker.service - Docker Application Container Engine (Rootless) Loaded: loaded (/home/zaki/.config/systemd/user/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-03-05 00:12:24 UTC; 40min ago Docs: https://docs.docker.com/engine/security/rootless/ Main PID: 75116 (rootlesskit) CGroup: /user.slice/user-1000.slice/user@1000.service/docker.service ├─75116 rootlesskit --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/r> ├─75129 /proc/self/exe --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up> ├─75146 slirp4netns --mtu 65520 -r 3 --disable-host-loopback --enable-sandbox --enable-seccomp 75129 tap0 ├─75153 dockerd : :
zaki@ubuntu-node:~$ systemctl --user is-active docker active zaki@ubuntu-node:~$ systemctl --user is-enabled docker enabled
この通り、OSをリブートしても有効。
Debian 10 (Buster)だと起動エラー
zaki@debian-node:~$ dockerd-rootless-setuptool.sh install [INFO] Creating /home/zaki/.config/systemd/user/docker.service [INFO] starting systemd service docker.service + systemctl --user start docker.service + sleep 3 + systemctl --user --no-pager --full status docker.service ● docker.service - Docker Application Container Engine (Rootless) Loaded: loaded (/home/zaki/.config/systemd/user/docker.service; disabled; vendor preset: enabled) Active: activating (auto-restart) (Result: exit-code) since Sun 2021-03-07 23:51:41 JST; 973ms ago Docs: https://docs.docker.com/engine/security/rootless/ Process: 6490 ExecStart=/usr/bin/dockerd-rootless.sh (code=exited, status=1/FAILURE) Main PID: 6490 (code=exited, status=1/FAILURE) + set +x [ERROR] Failed to start docker.service. Run `journalctl -n 20 --no-pager --user --unit docker.service` to show the error log. [ERROR] Before retrying installation, you might need to uninstall the current setup: `/usr/bin/dockerd-rootless-setuptool.sh uninstall -f ; /usr/bin/rootlesskit rm -rf /home/zaki/.local/share/docker` No journal files were opened due to insufficient permissions. zaki@debian-node:~$
謎エラーがでた。
journalctl -n 20 --no-pager --user --unit docker.service
を実行してもエラーが何も記録されていない。
zaki@debian-node:~$ journalctl -n 20 --no-pager --user --unit docker.service Hint: You are currently not seeing messages from the system. Users in the 'systemd-journal' group can see all messages. Pass -q to turn off this notice. No journal files were opened due to insufficient permissions. zaki@debian-node:~$
情報が何も無さすぎるので、とりあえずログの方を何とかしようと検索してみると、以下の情報がヒット。
/etc/systemd/journald.conf
で以下の変更を行ってsystemd-journald
をリスタート。
@@ -13,6 +13,7 @@ [Journal] #Storage=auto +Storage=persistent #Compress=yes #Seal=yes #SplitMode=uid
これで再度dockerd-rootless-setuptool.sh install
すると、以下のようにエラーが記録された。
zaki@debian-node:~$ journalctl -n 20 --no-pager --user --unit docker.service -- Logs begin at Mon 2021-03-08 00:42:16 JST, end at Mon 2021-03-08 00:42:27 JST. -- 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + : builtin 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + : auto 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + : auto 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + net= 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + mtu= 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + [ -z ] 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + which slirp4netns 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + [ -z ] 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + which vpnkit 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + echo Either slirp4netns (>= v0.4.0) or vpnkit needs to be installed 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: Either slirp4netns (>= v0.4.0) or vpnkit needs to be installed 3月 08 00:42:25 debian-node dockerd-rootless.sh[1061]: + exit 1 3月 08 00:42:25 debian-node systemd[549]: docker.service: Main process exited, code=exited, status=1/FAILURE 3月 08 00:42:25 debian-node systemd[549]: docker.service: Failed with result 'exit-code'. 3月 08 00:42:27 debian-node systemd[549]: docker.service: Service RestartSec=2s expired, scheduling restart. 3月 08 00:42:27 debian-node systemd[549]: docker.service: Scheduled restart job, restart counter is at 3. 3月 08 00:42:27 debian-node systemd[549]: Stopped Docker Application Container Engine (Rootless). 3月 08 00:42:27 debian-node systemd[549]: docker.service: Start request repeated too quickly. 3月 08 00:42:27 debian-node systemd[549]: docker.service: Failed with result 'exit-code'. 3月 08 00:42:27 debian-node systemd[549]: Failed to start Docker Application Container Engine (Rootless).
slirp4netns
がインストールされてないのでインストールする。
と思ったのだけど、現在のstableであるDebian Busterだとslirp4netnsのバージョンは0.2.3のため、要件が合わない。(ログを見る限り0.4.0以上が必要)
なので、替わりにvpnkit
を用意すれば良さそう。
ただしパッケージはなさそうなので自前で用意する必要があるかも。(未確認)
なお、sidや時期stableバージョンのBullseyeであれば1.0.1なので使用可能と思われる。(未確認 → 確認 )
Debian11で確認は以下
このパッケージはCentOS 7であればバージョン0.4.3をインストール可能なので、CentOS であれば通常のパッケージインストールで使用可能だと思われる。(未確認)
[zaki@cloud-dev ~]$ yum info slirp4netns 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ty1.mirror.newmediaexpress.com * epel: ftp.jaist.ac.jp * extras: ty1.mirror.newmediaexpress.com * updates: ty1.mirror.newmediaexpress.com インストール済みパッケージ 名前 : slirp4netns アーキテクチャー : x86_64 バージョン : 0.4.3 リリース : 4.el7_8 容量 : 169 k リポジトリー : installed 提供元リポジトリー : extras 要約 : slirp for network namespaces URL : https://github.com/rootless-containers/slirp4netns ライセンス : GPLv2 説明 : slirp for network namespaces, without copying buffers across the namespaces.