1、Linux内核中的NameSpace

namespace 系统调用参数 隔离内核 内核版本
UTS CLONE_NEWUTS 主机名和域名 2.6.19
IPC ClONE_NEWIPC 信号量、休息队列和共享内存 2.6.19
PID CLONE_NEWPID 进程编号 2.6.24
NetWork CLONE_NEWNET 网络设备、网络栈、端口等 2.6.29
Mount ClONE_NEWNS 挂载点(文件系统) 2.4.19
User CLONE_NEWNS 用户和用户组 3.8

2、Docker网络通讯示意图
Docker入门系列--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、配置帧的网桥
    [[email protected] ~]# 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

    [[email protected] ~]# 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、使用工具分配地址
    [[email protected] ~]# yum -y install git
    [[email protected] ~]# git clone https://github.com/jpetazzo/pipework
    [[email protected] ~]# cp pipework/pipework/usr/local/bin
    [[email protected] ~]# docker run -itd --net=none --name=ff centos-6-x86 bash
    [[email protected] ~]# pipework br0 f1 192.168.216.135/24

相关文章:

  • 2022-03-09
  • 2021-09-10
  • 2022-12-23
  • 2021-12-07
  • 2019-06-10
  • 2021-11-24
  • 2022-02-20
猜你喜欢
  • 2021-11-27
  • 2022-12-23
  • 2019-12-15
  • 2022-12-23
  • 2019-01-03
  • 2022-01-16
  • 2021-05-18
相关资源
相似解决方案