Docker創建network網絡


2021-09-23

1、為什么要使用NetWork

  由於在Dockerfile的文件配置需要設置網絡參數。

Docker 提供三種 user-defined 網絡驅動:bridgeoverlay 和 macvlan
overlay 和 macvlan 用於創建跨主機的網絡

2 、常用命令

不指定網絡驅動時默認創建的bridge網絡

docker network create default_network

查看網絡內部信息

docker network inspect default_network

列所有列表的網絡

docker network ls

移除指定的網絡

docker network rm default_network

 

3. 自定義網絡

自定義網絡需要使用create命令,先來看看create命令可以跟哪些參數
剛才原生網絡不存在域名解析,但是自定義網絡存在域名解析
在這里插入圖片描述

1.查看所有的docker網絡:docker network ls

網絡模式

  • bridge:橋接docker(默認,自己創建也使用bridge模式)
  • none:不配置網絡
  • host:和宿主機共享網絡
  • container:容器網絡連通(用的少,局限很大)

2.創建自定義網絡命令:docker network create default_network

docker network create --driver bridge --subnet 192.168.1.0/16 --gateway 192.168.1.0 mynet
解析:
--driver bridge 表示使用橋接模式
--subnet 192.168.1.0/16 表示子網ip 可以分配 192.168.1.2192.168.255.255
--gateway 192.168.1.0 表示網關
mynet 表示網絡名

3.查看網絡內部信息:docker network inspect default_network

4.移除指定的網絡:docker network rm default_network

4. 橋接網絡 bridge network

docker network create default_network
docker network create --driver bridge default_network
docker network create --driver bridge --subnet 192.168.1.0/16 --gateway 192.168.1.0 default_network
解析:
--driver bridge 表示使用橋接模式
--subnet 192.168.1.0/16 表示子網ip 可以分配 192.168.1.2192.168.255.255
--gateway 192.168.1.0 表示網關
default_network表示網絡名

 

5.  overlay network

docker network create -d overlay --subnet=10.0.2.1/24 overlay-net 

 

6. macvlan network

 

7. Docker執行指定網絡

 

8. docker-compose指定networks

8.1. 使用重新創建網絡的核心配置為

version: '3'
services:
  mysql:
    image: mysql:5.7.17
    restart: always
    #container_name: my_mysql
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=root
      #- MYSQL_DATABASE=mydb
    volumes:
      # 數據目錄
      - mysql-data:/var/lib/mysql
      # 配置文件
      - /docker/mysql/conf/my.cnf:/etc/my.cnf
      # 數據庫還原目錄可將需要還原的sql文件放在這里
      - /docker/mysql/init:/docker-entrypoint-initdb.d
    ports:
      - 3306:3306
    networks:
      demo:
        #ipv4_address: 172.18.0.100
networks:
  demo:
    driver: default
    config:
      subnet: 172.18.0.0/16
      gateway: 172.18.0.1
volumes:
  mysql-data:

 

8.2. 使用已經建好的網絡

這里要手動建一個網絡,這里面建的網絡的

"Subnet": "172.18.0.0/16"

"Gateway": "172.18.0.1"

version: '3'
services:
  mysql:
    image: mysql:5.7.17
    restart: always
    #container_name: my_mysql
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=root
      #- MYSQL_DATABASE=mydb
    volumes:
      # 數據目錄
      - mysql-data:/var/lib/mysql
      # 配置文件
      - /docker/mysql/conf/my.cnf:/etc/my.cnf
      # 數據庫還原目錄可將需要還原的sql文件放在這里
      - /docker/mysql/init:/docker-entrypoint-initdb.d
    ports:
      - 3306:3306
    networks:
      demo:
        #ipv4_address: 172.18.0.100
networks:
  demo:
    external: true
volumes:
  mysql-data:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM