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 @   秦时明月0515  阅读(17841)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示