ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker网络配置的几种常见模式

2022-03-20 14:35:47  阅读:208  来源: 互联网

标签:容器 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有