docker compose多个容器共享网络

142 阅读1分钟

创建网络

这里网络名称叫extnetwork,存在则忽略,不存在则创建

#!/bin/bash

network=$(docker network ls | grep extnetwork | grep -v grep | wc -l)
if [ $network -eq 0 ]; then
  echo "docker network create -d bridge --subnet=172.16.0.0/16 extnetwork"
  docker network create -d bridge --subnet=172.16.0.0/16 extnetwork
fi

定义网络

network.yml

networks:
  extnetwork:
    external: true

引用网络

docker-compose.yml

version: '3'
services:
  mysql-master:
    restart: always
    privileged: true
    image: postgres:13.16
    container_name: postgresql
    volumes:
      - ./data:/var/lib/postgresql/data/pgdata
    environment:
      - "POSTGRES_PASSWORD=123456"
      - "PGDATA=/var/lib/postgresql/data/pgdata"
    ports:
      - 5432:5432
    networks:
      # 指定网络
      extnetwork:
        ipv4_address: 172.16.0.240 # 指定ip

include: # 引用网络p配置文件
  - ../network.yml

本文使用 文章同步助手 同步