DockerネットワークカードのIPアドレスを変更する

Docker コンテナが開始されると、デフォルトでネットワーク名前空間に対応するネットワーク カードがホストに割り当てられ、IP アドレスがこのネットワーク名前空間の下にランダムに割り当てられます。
Docker コンテナの IP アドレスを変更する場合は、いくつかの方法があります。

  1. Docker ホストの Docker ネットワークを変更する
    Docker ホスト上の/etc/docker/daemon.jsonファイルを変更し、次のコンテンツを追加できます。
{
    
    
  "bip": "192.168.1.5/24",  
}

これにより、Docker コンテナに IP が割り当てられるサブネット192.168.1.0/24と、設定されるデフォルト ゲートウェイが変更されます192.168.1.1
これは Docker を再起動した後に有効になり、それ以降に作成されたコンテナーにはこのサブネット内の IP が割り当てられます。
2. コンテナを起動するときに、コンテナの IP アドレスを指定するパラメータを
使用してIP を指定します。--ip

docker run -it --ip 192.168.1.10 ubuntu:18.04

これにより、192.168.1.10この IP が新しく開始されたコンテナに強制的に割り当てられます。
3. コンテナ起動後のIP変更 コンテナ
起動後にコンテナ内のネットワーク構成を直接変更してIPアドレスを変更できます。
まず、コンテナのネットワーク名前空間を見つけます。使える:

docker inspect 容器id|name    # 查看"NetworkSettings"下的"SandboxKey"值 

次に、次のip netns execコマンドを使用してネットワーク名前空間を入力します。

sudo ip netns exec 沙盒KEY /bin/bash

この名前空間でネットワーク構成を変更するだけです。例えば:

ip addr add 192.168.1.15/24 dev eth0
ip link set eth0 up 

これにより、eth0 ネットワーク カードの IP が に設定されます192.168.1.15
終了後、コンテナの IP が変更されます。コンテナが他のコンテナまたはホスト (たとえば) の構成に古い IP を書き込んでいる場合、それらの場所の構成をそれに応じて変更する必要があること
に注意してください。そうしないと、ネットワーク異常が発生する可能性があります。上記は、Docker コンテナの IP アドレスを変更するための一般的な方法をいくつか示しています。実際のシナリオに応じて、適切なソリューションを選択してください。/etc/resolv.conf

おすすめ

転載: blog.csdn.net/qq_44534541/article/details/130528330