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

参考资料

posted @   HachikoT  阅读(21)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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接口
点击右上角即可分享
微信分享提示