当前位置:首页>开发>正文

docker网络怎么配置/ docker网络问题 怎么解决

2023-06-16 23:38:55 互联网 未知 开发

 docker网络怎么配置/ docker网络问题 怎么解决

docker网络怎么配置/


在你的宿主机启动docker的时候会多出一个 docker0 的虚拟网卡,然后容器都通过这个和外面通信。容器和docker宿主机之间是NAT的方式共享网络的,也就是说宿主机可以访问的资源,容器也是可以直接访问,你要使用apt-get,你就要保证你的宿主机可以上外网,否则免谈。

docker网络问题 怎么解决

网络基础
Docker 现有的网络模型主要是通过使用 Network namespace、Linux Bridge、iptables、veth pair 等技术实现的。(出处8)

Network namespace:它主要提供了网络资源的隔离,包括网络设备、IPv4/IPv6 协议栈、IP 路由表、防火墙、/proc/net 目录、/sys/class/net 目录、端口(socket)等。
Linux Bridge:功能相当于物理交换机,为连在其上的设备(容器)转发数据帧,如 docker0 网桥。
Iptables:主要为容器提供 NAT 以及容器网络安全。
veth pair:两个虚拟网卡组成的数据通道。在 Docker 中,用于连接 Docker 容器和 Linux Bridge。一端在容器中作为 eth0 网卡,另一端在 Linux Bridge 中作为网桥的一个端口。

容器的网络模式
用来设置网络接口的 docker run --net 命令,它的可用参数有四个:
none:关闭了 container 内的网络连接。容器有独立的 Network namespace,但并没有对其进行任何网络设置,如分配 veth pair 和网桥连接,配置 IP 等。
bridge:通过 veth 接口来连接其他 container。这是 docker 的默认选项。
host:允许 container 使用 host 的网络堆栈信息。容器和宿主机共享 Network namespace。
container:使用另外一个 container 的网络堆栈信息。kubernetes 中的 pod 就是多个容器共享一个 Network namespace。
我们需要从中选一个作为我们的网络方案,实际上只有 bridge 和 host 两种模式可选。(想了解这四个参数,请翻到附录B之 Network settings。)
在 docker 默认的网络环境下,单台主机上的容器可以通过 docker0 网桥直接通信,如下图(图作者冯明振)所示:

如何给docker容器设置ip

要重新再获得被分配IP地址,可以在客户端主机的DOC下(在[开始]-[运行]里输入“cmd”或点击附件里的[命令提示符]就可以进入)
输入命令 ipconfig/release (释放掉你获得的IP)
然后 ipconfig/renew(重新到DHCP服务器那里获得IP)

A类是第1段1-126,B类第1段是128-191,C类第1段就是192-223
A、B类被作为外网地址,C类被用做局域网地址。
你要连通外网后A、B类的都是网络经营商拥有的,你得花钱租的。

DHCP有一定的记忆性,如果只连一台计算机,肯定经常出现总分配同1个地址,或差不多的地址,以求网络的稳定,并节省消耗。

最新文章