Docker网络配置
docker配置ipv4转发:
vi /etc/sysctl.conf,添加如下内容:
net.ipv4.ip_forward = 1
systemctl restart network
查看修改结果:
ysctl net.ipv4.ip_forward
docker创建自定义桥接网络,并指定网段:
docker network create --driver=bridge --subnet=172.18.0.0/24 bridge_internet
MACVLAN连接到实际网段:
docker创建macvlan网络,直接与外部网络通信,与宿主同一网段
docker network create -d macvlan --subnet=192.168.120.0/24 --gateway=192.168.120.1 -o parent=eth0 pub_net
docker创建macvlan网络,直接与外部网络通信,使用外部任意vlan
docker network create --driver macvlan --subnet=10.10.0.0/24 --gateway=10.10.0.253 -o parent=eth0.10 macvlan10 #指定vlan id 10
启动容器,并分配IP 192.168.120.29
docker run --net=pub_net --ip=192.168.120.29 -it alpine /bin/sh
macvlan网络在创建时要指定parent.其中parent仅能使用一次,即eth0在创建一个macvlan网络时使用了,则在创建另一个的时候就无法再使用了.
在创建macvlan的时候,如果不指定网段,默认网段为172.18.0.0/16, 此时加入此网络的容器,在同一台主机上时可以互相ping通,无法ping通外部网络,同时加入此网络的容器,创建时不能手工指定ip,仅能使用ipam自动分配.
在使用和主机相同网段的macvlan时,如果在创建容器时不指定ip,则默认ipam从192.168.15.2开始分配,不检查网段内是否已有相同ip,这种情况下会造成容器ip和网络内其他设备ip冲突
参考:
https://www.cnblogs.com/atuotuo/p/7381103.html
https://www.cnblogs.com/lkj371/p/12718140.html
查看docker网络:
docker network ls/rm docker network inspect bridge_internet
查看宿主机网络:ip a
-p将端口映射到宿主,-P会将端口随机映射到宿主
docker run -d -p 5000:5000 training/webapp python app.py
查看容器的端口映射情况:
docker port container_id
docker port container_id port
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?