Docker的四种网络模型(十)
1.docker的四种网类型
- 语法格式
- docker run -it --network 网络类型 镜像
1.1.None
- 不为容器配置任何网络功能,–net=noe
1.指定网络类型为none
[root@docker01 ~]# docker run -it --network none centos69_ssh_df:v3 /bin/bash
2.查看是否有网络
[root@6e47719e0c83 /]# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
[root@6e47719e0c83 /]#
3.查看容器的属性会看到network没有指定ip
[root@docker01 ~]# docker inspect cranky_agnesi
1.2.Container
- 与另一个运行中的容器共享Network(k8s常用网络模型)
- 共享网络时,哪台机器开启了服务,只有自己能看到服务的进程,而共享的另一台机器就看不到谁开启的服务,只能看到自己的服务和所有的端口
- 共享网络后,去使用共享网络的机器的主机名、ip地址都会和被共享端配置一模一样
- 先到先得
1.首先启动一个有网络的容器
[root@docker01 ~]# docker run -itd centos69_ssh_df:v3 /bin/bash
347c5934f47b46d8cc54e305313c8c9b84604370aac41bd61535b37a861f002c
[root@docker01 ~]# docker inspect frosty_turing | grep 'IPAddress'
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.6",
"IPAddress": "172.17.0.6",
2.接着启动需要使用共享网络的容器
[root@docker01 ~]# docker run -it --network container:frosty_turing centos69_ssh_df:v3 /bin/bash
3.查看容器的ip和主机名,会发现和刚刚启动的容器的主机名、ip都相同
[root@347c5934f47b /]# hostname -I
172.17.0.6
1.3.Host
- 与宿主机共享network
- 与宿主机的主机名、IP一直,利用率最高
- 与contain的原理一样,只能看到自己开启的哪些服务,别的机器开启的自己看不到
1.与宿主机共享网络
[root@docker01 ~]# docker run -itd --network host centos69_ssh_df:v3 /bin/bash
3a67ea4dd241d88be2cdc5f6b14db09298e00bd1cdbcbf0fdf4342716f25aba8
2.进入容器
[root@docker01 ~]# docker exec -it sweet_sinoussi /bin/bash
3.配置一个sshd
[root@docker01 /]# vi /etc/ssh/sshd_config
[root@docker01 /]# /etc/init.d/sshd start
Starting sshd: [ OK ]
[root@docker01 /]# netstat -lnpt | grep 24
tcp 0 0 0.0.0.0:24 0.0.0.0:* LISTEN 42/sshd
tcp 0 0 :::24 :::* LISTEN 42/sshd
[root@docker01 /]# exit
exit
4.测试
[root@docker01 ~]# ssh 127.0.0.1 -p 24
root@127.0.0.1's password:
[root@docker01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
1.4.Bridge
- docker设计的NAT网络模型
- docker默认的网络模型
默认就是
目录 返回
首页