2016-09-14 10 views
22

Próbuję dostarczyć statyczny adres IP do kontenerów. Rozumiem, że muszę utworzyć niestandardową sieć. Tworzę go, a interfejs mostu znajduje się na komputerze-hoście (Ubuntu 16.x). Kontenery pobierają adres IP z tej podsieci, ale nie dostarczają statycznych danych.Udostępnianie statycznego adresu IP kontenerom docker za pomocą dokowania-komponowania

Oto moja doker-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 

Pojemniki dostać 10.5.0.2 i 10.5.0.3, zamiast 5 i 6.

Odpowiedz

40

pamiętać, że nie zalecamy stałą IP dla kontenerów w Dockerze, chyba że robisz coś, co pozwala na przekierowanie z zewnątrz do wnętrza twojej sieci kontenerowej (np. Macvlan). System DNS jest już dostępny do wykrywania usług w sieci kontenerowej i obsługuje skalowanie kontenerów. Poza siecią kontenerową powinieneś używać odsłoniętych portów na hoście. Z tym zastrzeżeniem, oto plik, który chcesz skomponować:

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 
+1

Działa jako urok! Dzięki. – chenchuk

+1

Nie działa dla mnie: Określony przez użytkownika adres IP jest obsługiwany tylko podczas łączenia się z sieciami z skonfigurowanymi przez użytkownika podsieciami. –

+0

Musisz pominąć dolną połowę pliku komponowania, w którym zdefiniowano skonfigurowaną przez użytkownika podsieć. – BMitch

Powiązane problemy