1. 程式人生 > >docker-compose自定義網路,固定容器ip地址

docker-compose自定義網路,固定容器ip地址

由於預設的bridge橋接網路,重啟容器後會改變ip地址。在一些場景下我們希望固定容器IP地址。
docker-compose是docker的一個編排工具,相對於命令模式建立網路,容器等。使用配置檔案相對來說更方便,可追溯問題。

直接貼上docker-compose.yml檔案

version: '2'
services:
   nginx:
      image: nginx:1.13.12
      container_name: nginx
      restart: always
      networks:
         extnetwork:
            ipv4_address: 172.19.0.2
 
networks:
   extnetwork:
      ipam:
         config:
         - subnet: 172.19.0.0/16
           gateway: 172.19.0.1

說明:
gateway是閘道器地址
subnet是網路號段
extnetwork是自定義的網路名稱

上面配置中我們的nginx容器固定ip為172.19.0.2

示例,自定義網路模式:

version: '2'
services:
   nginx:
      image: nginx:1.13.12
      container_name: nginx
      restart: always
      networks:
         extnetwork:
      ports:
         - 80:80
      volumes:
         - '/nginx/conf.d:/etc/nginx/conf.d'
   nginx2:
      image: nginx:1.13.12
      container_name: nginx2
      restart: always
      networks:
         extnetwork:
            ipv4_address: 172.19.0.2
         
   db:
     image: mysql:5.7
     container_name: db
     volumes:
       - /var/lib/mysql:/var/lib/mysql
     restart: always
     networks:
         extnetwork:
     ports:
         - 3306:3306
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress      
   
   wordpress:
      image: wordpress:latest
      container_name: wordpress
      depends_on:
         - db
      ports:
         - "8000:80"
      restart: always
      networks:
         extnetwork:
      environment:
         WORDPRESS_DB_HOST: db:3306
         WORDPRESS_DB_NAME: wordpress
         WORDPRESS_DB_USER: wordpress
         WORDPRESS_DB_PASSWORD: wordpress
networks:
   extnetwork:
      ipam:
         config:
         - subnet: 172.19.0.0/16
           gateway: 172.19.0.1