Docker入门系列--Docker中的网络(七)

Docker入门系列–Docker中的网络(七)

1、Linux内核中的NameSpace

namespace系统调用参数隔离内核内核版本
UTSCLONE_NEWUTS主机名和域名2.6.19
IPCClONE_NEWIPC信号量、休息队列和共享内存2.6.19
PIDCLONE_NEWPID进程编号2.6.24
NetWorkCLONE_NEWNET网络设备、网络栈、端口等2.6.29
MountClONE_NEWNS挂载点(文件系统)2.4.19
UserCLONE_NEWNS用户和用户组3.8

2、Docker网络通讯示意图
在这里插入图片描述
3、Docker中的防火墙规则
容器访问外部网络
iptables -t net -A POSTROUTING -s 172.17.0.0 -o docker0 -jMASQUERADE

外部网咯访问容器
docker run -d-p 80:80 apache
iptables -t nat -A PREROUTING -maddrtypre --dst-type LOCAL -j DOCKER
iptables -t nat -A DOCKER ! -idocker0 -p tcp -m tcp --dport 80-j DNAT --to-destination 172.17.0.2:80

4、Docker网络的修改
docker进程网络修改
-b, --bridge=" " 指定Docker使用的网桥设备,默认情况下Docker会自动创建和使用docker0网桥设备,通过此参数可以使用已经存在的设备。
–bip 指定docker0的IP和掩码,使用标准的CIDR形式,如 10.10.10.10/24
–dns 配置容器的DNS,在启动Docker进程是添加,多有容器全部生效

Docker容器网络修改
–dns 用于指定启动的容器的DNS
–net 用于指定容器的网络通讯方式,有以下四种:

  • bridge:Docker默认方式,网桥模式
  • none:容器没有网络战
  • container:使用其它容器的网络栈,Docker容器会加入其它容器的network namespace
  • host:表示容器使用Host的网络,没有自己独立的网络栈,容器可以完全访问Host的网络,不安全。

5、端口的暴露方式
-p/P选项的使用格式
 -p :将制定的容器端口映射至主机所有地址的一个动态端口。
 -p ::映射至指定的主机端口
 -p ::映射至指定的主机的IP的动态端口
 -p :::映射至指定的主机IP的主机端口
 -P(大):暴露所需要的所有端口
docker port ContainerName 可以查看容器当前的映射关系

6、网络隔离

  • 基础命令说明
    docker network ls 查看当前可用的网类型
    docker network create -d 类型 网络空间名称
    类型分为:overlay network、bridge network

  • 使用网络名字空间进行隔离代码记录
    docker network create -d bridge --subnet “172.26.0.0/16” --gatway"172.26.0.1" my-bridge-network
    docker run -d --network=my-bridge-network --name test1 hub.c.163.com/public/centos:6.7-tools
    docker run -d --name test2 hub.c.163.com/public/centos:6.7-tools

  • 使容器配置上独立IP进行通讯
    A、配置帧的网桥
    [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
     DEVICE=eth0
     HWADDR=00:0C:29:06:A2:35
     TYPE=Ethernet
     UUID=34b706cc-aa46-4be3-91fc-d1f48c301f23
     ONBOOT=yes
     NM_CONTROLLED=yes
     BOOTPROTO=static

    [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
     //改成这样
     DEVICE=br0
     TYPE=Bridge
     ONBOOT=yes
     BOOTPROTO=static
     IPADDR=192.168.199.131
     NETMASK=255.255.255.0
     GATWAY=192.168.199.2
     DNS=8.8.8.8
    B、使用工具分配地址
    [root@localhost ~]# yum -y install git
    [root@localhost ~]# git clone https://github.com/jpetazzo/pipework
    [root@localhost ~]# cp pipework/pipework/usr/local/bin
    [root@localhost ~]# docker run -itd --net=none --name=ff centos-6-x86 bash
    [root@localhost ~]# pipework br0 f1 192.168.216.135/24

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值