Определить Ip файла docker-compose - PullRequest
0 голосов
/ 15 апреля 2019

Я новичок в докере, так что извините, если моя терминология немного ошибочна.Я нахожусь в процессе заставить мое приложение работать в докере.Все запускается и работает правильно, но я не могу установить IP-адрес, на котором работают службы.Мне нужно сделать это, так как я делаю вызовы API, которые ранее ссылались на статическую переменную в моем коде js.Сервис spark особенно важен для меня, чтобы у меня был узнаваемый ip, так как теперь он назначен случайно.

docker-compose.yml

version: '3.0' # specify docker-compose version

services:
 vue: 
  build: client 
  ports:
  - "80:80" # specify port mapping

 spark:
  build: accubrew-spark
  ports:
    - "8080:8080"

 express: 
  build: server 
  ports:
  - "3000:3000" 
  links:
  - database 

 database:
  image: mongo
  ports:
  - "27017:27017"```

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Когда вы запускаете контейнеры с помощью docker-compose, он создает для вас определенную пользователем сеть, а docker предоставляет встроенные DNS-серверы, каждый контейнер будет иметь запись, разрешаемую только внутри контейнеров сети.

Это позволяет вам узнать, как связаться с каждой службой, просто позвонив им по имени, указанному в вашем docker-compose.yml.

0 голосов
/ 15 апреля 2019

Вы можете попробовать это:

version: '3.0' # specify docker-compose version

services:
 vue: 
  build: client 
  ports:
  - "80:80" # specify port mapping

 spark:
  build: accubrew-spark
  ports:
    - "8080:8080"
  networks:
    my_net:
      ipv4_address: 172.26.0.3

 express: 
  build: server 
  ports:
  - "3000:3000" 
  links:
  - database 

 database:
  image: mongo
  ports:
  - "27017:27017"

networks:
  my_net:
  ipam:
    driver: default
    config:
      - subnet: 172.26.0.0/16

Но у вас есть спарк-порт localhost: 8080, если вам нужно предоставить другой порт с IP-адресом 172.26.0.0, вы можете сделать - "7077" или с локальным хостом: -"7077:7077" Это пример с портом 7077 expose:

version: '3.0' # specify docker-compose version

services:
 vue: 
  build: client 
  ports:
  - "80:80" # specify port mapping

 spark:
  build: accubrew-spark
  ports:
    - "8080:8080"
    - "7077"
  networks:
    my_net:
      ipv4_address: 172.26.0.3

 express: 
  build: server 
  ports:
  - "3000:3000" 
  links:
  - database 

 database:
  image: mongo
  ports:
  - "27017:27017"

networks:
  my_net:
  ipam:
    driver: default
    config:
      - subnet: 172.26.0.0/16
...