Подтвердить что ты не робот

Предоставлять статический IP-адрес для докеров-контейнеров через докеры

Я пытаюсь предоставить статический IP-адрес для контейнеров. Я понимаю, что мне нужно создать настраиваемую сеть. Я создаю его, и интерфейс моста находится на главной машине (Ubuntu 16.x). Контейнеры получают IP из этой подсети, но не статические, которые я предоставил.

Вот мой docker-compose.yml:

version: '2'

services:
  mysql:
    container_name: mysql
    image: mysql:latest
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
    ports:
     - "3306:3306"
    networks:
     - vpcbr

  apigw-tomcat:
    container_name: apigw-tomcat
    build: tomcat/.
    ports:
     - "8080:8080"
     - "8009:8009"
    networks:
     - vpcbr
    depends_on:
     - mysql

networks:
  vpcbr:
    driver: bridge
    ipam:
     config:
       - subnet: 10.5.0.0/16
         gateway: 10.5.0.1
         aux_addresses:
          mysql: 10.5.0.5
          apigw-tomcat: 10.5.0.6

Контейнеры получают 10.5.0.2 и 10.5.0.3 вместо 5 и 6.

4b9b3361

Ответ 1

Обратите внимание, что я не рекомендую фиксированный IP-адрес для контейнеров в Docker, если вы не делаете что-то, что позволяет маршрутизировать извне внутрь вашей сетевой сети (например, macvlan). DNS уже существует для обнаружения службы внутри контейнерной сети и поддерживает масштабирование контейнеров. За пределами контейнерной сети вы должны использовать открытые порты на хосте. С этим отказом от ответственности, вот компиляционный файл, который вы хотите:

version: '2'

services:
  mysql:
    container_name: mysql
    image: mysql:latest
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
    ports:
     - "3306:3306"
    networks:
      vpcbr:
        ipv4_address: 10.5.0.5

  apigw-tomcat:
    container_name: apigw-tomcat
    build: tomcat/.
    ports:
     - "8080:8080"
     - "8009:8009"
    networks:
      vpcbr:
        ipv4_address: 10.5.0.6
    depends_on:
     - mysql

networks:
  vpcbr:
    driver: bridge
    ipam:
     config:
       - subnet: 10.5.0.0/16
         gateway: 10.5.0.1