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:

 

posted @ 2021-09-23 09:47  秦时明月0515  阅读(11753)  评论(0编辑  收藏  举报