标签:容器 run -- 常见 几种 macvlan 20.04 Docker docker
前言
经常跟Docker打交道,对于容器net参数有了一定程度的认识,常用以下几种:
- none
- bridge
- host
- macvlan
分解
none
字面意思,用于创建无网络的容器。
docker run -it --rm --net none ubuntu:20.04 bash
bridge
默认net参数,bridge使得容器与主机之间存在一层NAT
例如主机分配的网桥地址为172.17.0.1容器则为172.17.0.3
容器可以正常访问外网但外部无法直接访问NAT背后的容器
端口转发需要使用`-p 参数
docker run -it --rm -p 8022:22 ubuntu:20.04 bash
host
和主机共享同一个ip因此默认转发所有端口,无网络隔离
无需使用-p
转发端口但服务需要注意规避主机已有端口
docker run -it --rm --net host ubuntu:20.04 bash
macvlan
这个比较特殊,脱胎于kernel的一种模式,放在最后说。
该模式允许容器分配一个有效mac地址并向路由申请一个独立ip地址
相比ipvlan具有高性能的优点,缺陷是vlan的存在使得主机和容器的网络隔离无法互相访问(均可被第三方访问)
部分网卡默认丢弃不属于自己mac地址的数据包,一般建议打开混杂(promisc)后建立macvlan(brige模式)
In bridge mode, macvlan traffic goes through a physical device on the host.
ip link set enp0s3 promisc on
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=enp0s3 -o macvlan_mode=bridge macnet
# assign a IP address
docker run -it --name valn_container --network macnet --ip=192.168.1.180 ubuntu:20.04 bash
# or specify mac and dns on your own
docker run -it --name valn_container --network macnet --ip=192.168.1.180 --dns=114.114.114.114 --mac-address AA:BB:CC:DD:EE:FF ubuntu:20.04 bash
参考
Networking overview | Docker Documentation
标签:容器,run,--,常见,几种,macvlan,20.04,Docker,docker 来源: https://www.cnblogs.com/azureology/p/16029734.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。