簡體   English   中英

定義docker-compose文件的IP

[英]Define Ip of docker-compose file

我是Docker的新手,如果我的術語有點錯誤,請對不起。 我正在使我的應用程序在docker中運行。 一切都在正常啟動並正常運行,但是我無法設置運行服務的IP地址。 我需要這樣做,因為我正在進行api調用,該調用以前在js代碼中引用了靜態變量。 到目前為止,spark服務對於擁有一個已知的ip尤其重要,因為它是隨機分配的。

泊塢窗,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"```

當您使用docker-compose運行容器時,它會為您創建一個用戶定義的網絡,而docker提供了一個嵌入式DNS服務器,每個容器僅在網絡的容器內具有可解析的記錄。

這使您僅通過使用您在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"
  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

但是您的spark端口是localhost:8080,如果您需要使用ip 172.26.0.0公開其他端口,則可以執行- "7077"或localhost: -"7077:7077"這是使用端口7077公開的示例:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM