跳至主要內容

Docker基础知识-docker网络

HFwasdockerdocker约 614 字大约 2 分钟

Docker基础知识-docker网络

  • 完全空的虚拟机,执行ip address
image-20230806121808287
image-20230806121808287
  • 安装完docker之后,执行ip address,发现多了一个docker0的接口,
image-20230806121859308
image-20230806121859308
  • 查看docker提供的网络形式,执行docker network ls
image-20230806121942840
image-20230806121942840
  • 查看默认docker提供的网络,执行docker network inspect 9ae7ace2422b
image-20230806122048582
image-20230806122048582
  • 创建一个容器,执行docker run -d --name egg1 --hostname egg1 praqma/network-myltitool,查看网络docker network inspect bridge | jq '.[0] | {Name:.Name, Id: .Id, Created: .Created,Driver: .Driver, IPAM: .IPAM.Config, Containers: .Containers, Options: .Options}'
image-20230806122632138
image-20230806122632138
  • 执行ip address,发现接口多了一个名称为vethcd0f116@if4的接口,接口序号直接是5,少了一个4的接口,可以看到master docker0,
image-20230806122731944
image-20230806122731944
  • 进入容器当中查看,执行docker exec -it egg1 ip -c address
image-20230806123214601
image-20230806123214601
  • 在容器当中执行ip -json -detail address show dev eth0 | jq '.[0] | {ifindex: .ifindex, linx_index:.link_index, ifname:.ifname,linkinfo:.linkinfo,addr_info:.addr_info}'
image-20230806123714185
image-20230806123714185
  • 测试在创建一个容器,发现容器自动加入了bridge网络当中,
image-20230806151004387
image-20230806151004387
  • 宿主机当中执行ip address,发现多了一个接口序号为7的接口
image-20230806151049277
image-20230806151049277
  • 可以总结为以下的图片
image-20230806152509483
image-20230806152509483
  • 表格总结为:

网络访问

bridge模式

  • 从容器内访问网关,docker0
image-20230806152929253
image-20230806152929253
  • 容器访问容器
image-20230806152953479
image-20230806152953479
  • 容器访问宿主机
image-20230806153002675
image-20230806153002675
  • 容器内访问服务名称,
image-20230806153023107
image-20230806153023107
  • 在宿主机上访问测试

    • 是否可以访问容器
    image-20230806153115804
    image-20230806153115804
    • 是否可以访问服务名称
    image-20230806153124701
    image-20230806153124701

docker dns问题

  • 创建自定义 网络,执行docker network create -d bridge naihe-bridge
image-20230806153243727
image-20230806153243727
  • 创建完bridge之后,发现出现了一个新的接口,类似docker0接口
image-20230806153410564
image-20230806153410564
  • c创建两个容器,使用自定义的网络接口,然后查看ip,发现多了两个接口
image-20230806153704466
image-20230806153704466
  • 进入容器egg5当中,查看docker dns是否起作用,测试发现自定义网络接口,docker dns起作用了。
image-20230806153759927
image-20230806153759927

host网络

  • host网络不能删除,只能有一个
  • 直接使用的宿主机的网络

none网络

  • 不能联网

总结

默认bridge自定义bridgehostnone
优点自动加入自动DNS,隔离网络性能佳隔离
缺点无自动DNSNAT安全问题,仅linux不能联网
场景不建议单宿主机多容器单容器多端口
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3