Docker创建network网络
2021-09-23
1、为什么要使用NetWork
由于在Dockerfile的文件配置需要设置网络参数。
Docker 提供三种 user-defined 网络驱动:bridge
, overlay
和 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.2 到 192.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.2 到 192.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:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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语句:使用策略模式优化代码结构