Как установить IP-адрес для контейнера в Docker?

Как настроить использование разных IP-адресов для каждого докер контейнера на VDS сервере с несколькими IP-адресами на hoster.kz так, чтобы при выполнении команды curl ifconfig.me внутри контейнера выводился соответствующий назначенный IP-адрес?
  • 20 марта 2024 г. 15:29
Ответы на вопрос 2
Для установки IP-адреса для контейнера в Docker необходимо создать сеть с подходящим подсетью и затем присвоить контейнеру IP-адрес из этой подсети. 

1. Создайте сеть с подходящей подсетью. Например, можно создать сеть с подсетью 192.168.0.0/24 следующей командой:

```
docker network create --subnet=192.168.0.0/24 mynetwork
```

2. Запустите контейнер, присвоив ему IP-адрес из созданной сети:

```
docker run --network=mynetwork --ip=192.168.0.2 -itd <image>
```

Где:
- `mynetwork` - название созданной сети,
- `192.168.0.2` - желаемый IP-адрес для контейнера,
- `<image>` - имя образа контейнера.

Теперь, чтобы настроить использование разных IP-адресов для каждого докер контейнера на VDS сервере с несколькими IP-адресами, можно использовать многосетевую конфигурацию Docker. Сначала необходимо настроить мост Docker для каждого IP-адреса хоста:

```
sudo ip addr add <ip_address>/24 dev docker0
```

Где `<ip_address>` - один из IP-адресов сервера. 

Затем создайте сеть и запускайте контейнеры, привязывая их к соответствующей сети:

```
docker network create --subnet=<subnet> --gateway=<gateway> mynetwork_<ip_address>
docker run --network=mynetwork_<ip_address> -itd <image>
```

Где:
- `<subnet>` - подсеть для данного IP-адреса,
- `<gateway>` - шлюз для данного IP-адреса,
- `<ip_address>` - один из IP-адресов сервера,
- `<image>` - имя образа контейнера.

Теперь при выполнении команды `curl ifconfig.me` внутри контейнера будет отображен соответствующий назначенный IP-адрес.
В настройках сети надо использовать ipvlan драйвер
Похожие вопросы