简体   繁体   中英

Define Ip of docker-compose file

i'm kinda new to docker so sorry if my terminology is a little wrong. I'm in the process of getting my app to run in docker. Everything is starting up and running correctly but i'm unable to set the ip address that the services are running on. I need to do so since i'm making api calls that previously referenced a static variable in my js code. The spark service especially is important for me to have a knowable ip, as of now its randomly assigned.

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"```

When you're running containers using docker-compose it creates a user-defined network for you and docker provides an embedded DNS servers, each container will have a record resolvable only within the containers of the network.

This makes it easy for you to know how to contact each service by just calling them by the name you specified on your docker-compose.yml .

You can try this:

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

But yours spark port is localhost:8080, if you need to expose other port with the ip 172.26.0.0, you can do - "7077" or with the localhost: -"7077:7077" this is an example with the port 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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM