rootlessで起動したコンテナ内で使用されるアドレスを変更する方法のメモです。
rootless時のネットワークについて
podmanでrootlessのコンテナを起動した時は slirp4netns
を使用して特権のないネットワーク名前空間用のユーザモードネットワークを設定します。
デフォルトでは 10.0.2.100(10.0.2.0/24)
が使用されます。
1 2 3 4 5 6 7 8 |
[user01@blog-podman ~]$ podman run ubi8 /bin/bash -c 'dnf -y install iproute && ip a s tap0' 2: tap0: <BROADCAST,UP,LOWER_UP> mtu 65520 qdisc fq_codel state UNKNOWN group default qlen 1000 link/ether 1e:9e:bb:50:dd:c6 brd ff:ff:ff:ff:ff:ff inet 10.0.2.100/24 brd 10.0.2.255 scope global tap0 valid_lft forever preferred_lft forever inet6 fe80::1c9e:bbff:fe50:ddc6/64 scope link valid_lft forever preferred_lft forever |
1 2 3 4 5 6 |
[user01@blog-podman ~]$ podman run ubi8 cat /etc/hosts (snip) # used by slirp4netns 10.0.2.100 9faf392a6a7d serene_pike 10.0.2.2 host.containers.internal |
ネットワーク設定を変える
containers.conf
に network_cmd_options
を追加します。
以下では 10.10.10.0/24
を使用するように設定しています。
1 2 3 4 5 |
[user01@blog-podman ~]$ mkdir .config/containers [user01@blog-podman ~]$ vi .config/containers/containers.conf [engine] network_cmd_options=['cidr=10.10.10.0/24'] |
1 2 3 4 5 6 |
[user01@blog-podman ~]$ podman run ubi8 cat /etc/hosts (snip) # used by slirp4netns 10.10.10.100 eaa695e275c7 wizardly_bouman 10.10.10.2 host.containers.internal |
IPアドレスが 10.0.2.100
から 10.10.10.100
へ変更できたことが確認できます。