docker网络
docker0网络
docker启动后会自动创建名为docker0
的虚拟网桥,功能类似于局域网中的交换机。同时,docker会分配一个本地未使用的虚拟网段,比如172.17.0.0/16
,并将第一个ip172.17.0.1
作为虚拟网桥的ip。
rc@rc-virtual-machine:~$ ip addr
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:c6:e5:c9:f0 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
每当创建一个容器的时候,默认使用docker0
网络,这时会为其创建一对veth pair
接口,用于连接容器和网桥,类似于物理机连接到交换机的网口一样,于是就可以互联互通了。
自定义网络
一般用docker-compose
部署多个容器的时候,会创建自定义的网络,默认也是网桥类型,在这个网络里面还有dns的功能,可以根据容器名找到对方。下面的docker-compose
部署文件就会创建一个默认的自定义网络,redis-web
通过域名找到redis-app
。
version: "3.4"
services:
redis-web:
image: redis-web:1.0
container_name: redis-web
environment:
REDIS_HOST: redis-app
ports:
- 8001:8001
depends_on:
- redis-app
redis-app:
image: redis:latest
container_name: redis-app
新建的容器会连接到tmp_default
网桥上,这里命名是根据当前所在文件夹的名字命名的,所以最好还是手动指定网络名词,避免冲突。
rc@rc-virtual-machine:~/tmp$ docker network ls
NETWORK ID NAME DRIVER SCOPE
5e2e134bc1e5 bridge bridge local
1e01eb87e5dc host host local
2c5d99ecc6a1 none null local
fc658398071f tmp_default bridge local
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2020-12-05 证书与密钥的标准
2020-12-05 go接口