docker网络知识笔记

docker容器的网络四种通信模式的总图如下

 

 Closed container: 封闭式容器,只有lo接口,不参与网络通信,运行与此类容器中的进程仅能访问本地环回接口,仅适用于进程无须网络通信的场景中,例如备份、进程诊断及各种离线任务等。命令行:docker run --rm --net none busybox:latest

Bridged container:nat桥接式容器,通过容器接口连接到docker0上,默认172.17.0.0/16,在使用 docker 时,没有指定网络模式时被采用的默认的网络模式。桥接式容器一般拥有两个接口:一个环回接口和一个连接至主机上某桥设备的以太网接口。docker daemon启动时,默认会创建一个名为docker0的网桥,并且创建的容器为桥接式容器,其以太网接口桥接至docker0。docker0桥为SNAT桥,因此,桥接式容器可通过此桥接口访问外部网络,但是防火墙则阻止一切从外部网络访问桥接式容器的请求。

docker run --rm --net bridge busybox:latest
如果容器上的服务要被外部网络访问,需要在宿主机上为其定义DNAT规则,通过使用docker run 命令的-p 参数-P来实现dnat的端口映射,无须手动的添加规则
docker run --name b1 --rm -d -p 80:80 hukey/httpd:v0.2

Joined container:联盟式容器,让两个容器有一分部名称空间是隔离的:文件系统、用户、PID隔离,但是 UTS、NET和IPC是同享同一组,所以两个容器使用同一组网络设备,可通过lo通信。

[root@kubemaster cw_docker]# docker run -it --name test2 cwcentos:1 /bin/sh
sh-4.4# cd /etc/hosts
sh: cd: /etc/hosts: Not a directory
sh-4.4# vi /etc/hosts
sh-4.4# vi /etc/re   
redhat-release  resolv.conf     
sh-4.4# vi /etc/re
redhat-release  resolv.conf     
sh-4.4# vi /etc/resolv.conf 
sh-4.4# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
104: eth0@if105: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
sh-4.4# 

[root@kubemaster ~]# docker run -it --net container:test2(container:容器的名字) --name=test4 cwcentos:1 /bin/bash
[root@db9fe42ebfd8 /]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
104: eth0@if105: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
[root@db9fe42ebfd8 /]#  

Open container:开放式容器,开放的网卡是物理网络接口,和物理机同享同一组网络命名空间

 

posted @ 2021-02-02 15:20  一切都是当下  阅读(126)  评论(0编辑  收藏  举报