Docker四种网络类型原理实例解析
四种网络类型:
- None:不为容器配置任何网络功能,--net=none
- Container:与另一个运行中的容器共享NetworkNamespace,--net=container:containerID(K8S)
- Host:与宿主机共享NetworkNamespace,--net=host
- Bridge:Docker设计的NAT网络模型
下面分别讲解下:
none:
[root@docker1centos_zabbix]#dockerrun-it--networknonecentos6.9_ssh:v2/bin/bash [root@6ae597015723/]#ipaddr 1:lo:mtu65536qdiscnoqueuestateUNKNOWNqlen1 link/loopback00:00:00:00:00:00brd00:00:00:00:00:00 inet127.0.0.1/8scopehostlo valid_lftforeverpreferred_lftforever
这种没有ip,可以在容器里随便玩,没有多大意义
container类型的网络:
[root@1c21de6080bbhtml]#[root@docker1centos_zabbix]#dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 1c21de6080bbcentos6.9_nginx_ssh:v3"/bin/bash"26secondsagoUp25secondsvigorous_payne [root@docker1centos_zabbix]#dockerrun-it--networkcontainer:1c21de6080bbcentos6.9_nginx_ssh:v4/bin/bash 共用了主机名的ip地址 可以查看属性 [root@docker1centos_zabbix]#dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 41c457f6b89dcentos6.9_nginx_ssh:v4"/bin/bash"5minutesagoUp5minutesloving_curie 1c21de6080bbcentos6.9_nginx_ssh:v3"/bin/bash"6minutesagoUp6minutesvigorous_payne [root@docker1centos_zabbix]#dockerinspect41c457f6b89d|grep-inetwork "NetworkMode":"container:1c21de6080bb8c83e800fa8b5fb15782a18bb61ab292050ca1172fbb866b1afc", "NetworkSettings":{ "Networks":{}
要注意的是这种公用container类型的端口是谁先用某个端口,谁就占了,后来的没法使用这个端口
host类型
[root@docker1centos_zabbix]#dockerrun-it--network=hostcentos6.9_nginx_ssh:v2/bin/bash
这种就是和宿主机共用端口,谁先占谁用,但是性能最高,所以我们在构建镜像的时候使用了这个参数,就是为了统一网络类型,提高构建镜像的效率
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。