0

如何为 docker-compose 文件中的每个容器分配静态 IP 地址。

错误:未找到使用驱动程序“默认”插件创建网络“dockercompose7405404752525846881_app_net”。

该解决方案有两个项目,一个 web 前端和一个 web-api 后端。后端通过angular.js

项目在 docker 之外构建和运行,并在 docker 内部运行。

问题是我需要在 docker-compose 文件中设置静态 ipaddress,以便我可以管理前端和后端之间的通信(记住它是需要知道 webapi 的 ip 的角度)。

这是我清理过的 docker-compose 文件:

version: '2.1'

services:
  backend.api:
    image: backend.api
    ports:
      - "80:80"
    build:
      context: .\backend.API
      dockerfile: Dockerfile
    networks:
      app_net:
        ipv4_address: 111.111.1.200 


  frontend:
    image: frontend
    env_file: 
      - .\frontend\config.env
    ports:
      - "80:80"
    build:
      context: .\frontend
      dockerfile: Dockerfile
    networks:
       app_net:
        ipv4_address: 111.111.1.210       

networks:
   app_net:
     driver: default
     ipam:
      driver: default
      config:
       - subnet: 111.111.1.0/24 

我得到的错误信息如下:

未找到驱动程序“默认”插件创建网络“dockercompose7405404752525846881_app_net”。

我已经尝试过版本 3 版本 2 和版本 2.1

4

1 回答 1

-1

我希望这可以帮助遇到同样问题的其他人。“这适用于 WINDOWS Docker 容器”

我终于找到了在 Visual Studio 中使用 Docker-Compose 文件实现在容器上设置静态 IP 的正确方法。

关键是你需要先手动创建一个网络

docker network create -d nat --subnet=192.168.1.0/24 --gateway=192.168.1.254 app_net

当您在 PowerShell 中执行此行时,请记住更改网络名称和 ipaddress 以适合您的目的

docker network create -d nat --subnet=<subnet ip>/<end renage> --gateway=<gateway ip> <network name>

Docker-compose 文件

version: '3.2'

services:
  backend.api:
    image: backend.api
    build:
      context: .\backend.API
      dockerfile: Dockerfile
    networks:
       app_net:
        ipv4_address: 111.111.1.210        

  FRONTEND:
    image: FRONTEND
    env_file: 
      - .\FRONTEND\config.env
    build:
      context: .\FRONTEND
      dockerfile: Dockerfile
    networks:
       app_net: 
        ipv4_address: 111.111.1.220


networks:
   app_net:
     external: true
于 2018-01-30T11:03:01.583 回答