目录

一、docker网络模式

host:

container:

none:

bridge:

二、网络空间(固定容器地址)

查看网络模式

创建新的网络

部署实例

三、内存使用限制

1、内存使用带下限制

四、限制磁盘读写

1、限制数据量


一、docker网络模式

docker网络有四种模式:host、container、none、bridge模式。

host:

      容器将不会虚拟出自己的网卡docker 0,配置自己的IP等,而是使用宿主机ens33的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。


host最大的优势就是网络性能比较好,但是网络的隔离性不好


什么意思了? 就是说如果docker使用host网络模式时不会创建自己的虚拟网卡和ip地址而是使用宿主机的ip加端口访问

container:

    新创建的容器和已经存在的一个容器共享一个 Network Namespace(网络空间),创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围

大概的意思就是:假设我现在要启动一个nginx实例  这个实例不会创建自己的ip 和端口  而是用第一个启动的容器ip+端口地址访问

none:

     none模式没有网络,封闭的网络性能很好的保证容器的安全性。可以在容器创建时通过–network=none来指定。

可以理解为:该模式关闭了容器的网络功能

bridge:

      Docker进程启动时,在主机上创建一个名为docker0的虚拟网桥,从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。

可以理解为:在启动一个新的容器时,只要使用了bridge网络模式 都会创建一个docker0的虚拟网桥,在从docker0中分配一个ip地址给启动的容器实例

docker 网络模式默认为bridge

二、网络空间(固定容器地址)

查看网络模式

docker network ls

[root@control ~]# docker network ls
NETWORK ID     NAME          DRIVER    SCOPE
09727bad7e47   bridge        bridge    local
99f64ce0f908   cig_default   bridge    local
9829c3adb482   host          host      local
233efab29cf8   none          null      local
[root@control ~]#

创建新的网络

docker network create --subnet=网段/24 名字


docker network create --subnet=10.18.1.0/24 newnetwork

[root@control ~]# docker network create --subnet=10.18.1.0/24 newnetwork   #创建新的网段
02f91f4c69b993c26ef4edc47aa7bbdd22cee83816c6ee007ffbe5e29470076a
[root@control ~]# docker network ls       #查看网络列表
NETWORK ID     NAME          DRIVER    SCOPE
09727bad7e47   bridge        bridge    local
99f64ce0f908   cig_default   bridge    local
9829c3adb482   host          host      local
02f91f4c69b9   newnetwork    bridge    local
233efab29cf8   none          null      local
[root@control ~]#

部署实例

如果自己的主机上没有nginx镜像的先用docker  pull   nginx   拉取一个镜像

docker run -p 80:80 --name nginx2 --network newnetwork --ip 10.18.1.100  -d nginx

 docker run -itd --name centos7 --network newnetwork --ip 10.18.1.101  -d centos:7 /bin/bash


docker  ps   #正在运行的进程

[root@control data]# docker ps
CONTAINER ID   IMAGE                 COMMAND                   CREATED          STATUS          PORTS                                                                                  NAMES
adf4d15bf3c6   centos:7              "/bin/bash"               27 minutes ago   Up 27 minutes                                                                                          centos7
73f20217fe01   nginx                 "/docker-entrypoint.…"   35 minutes ago   Up 35 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp                                                      nginx2

进入容器查看ip

[root@control data]# docker exec -it adf4d15bf3c6 /bin/bash
 [root@adf4d15bf3c6 /]#
  [root@adf4d15bf3c6 /]# ifconfig
 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
         inet 10.18.1.101  netmask 255.255.255.0  broadcast 10.18.1.255
         ether 02:42:0a:12:01:65  txqueuelen 0  (Ethernet)
         RX packets 28645  bytes 53081680 (50.6 MiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 14952  bytes 820941 (801.7 KiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
         inet 127.0.0.1  netmask 255.0.0.0
         loop  txqueuelen 1000  (Local Loopback)
         RX packets 164  bytes 18003 (17.5 KiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 164  bytes 18003 (17.5 KiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@adf4d15bf3c6 /]#


 

发现centos7的ip和自己指定的ip一样

三、内存使用限制

1、内存使用带下限制

限制内存最大只能使用512m

[root@control docker]# docker run -itd --name test3 -m 512m centos:7 /bin/bash
 9d48f31c4e30cb1ff6c1d6daed8c11453486cc30a1bd7510ab8af1f7af03dc1a
 [root@control docker]#docker  stats    #查看监控


 

linux怎么修改docker网络模式为Host模式 docker修改网段_docker

四、限制磁盘读写

1、限制数据量

--device-read-bps:限制读某个设备的bps(数据量)

格式:docker run -itd --name 名字 --device-read-bps 设备名:读取额度 centos:7
 例:

docker run -d --name test4 --device-read-bps /dev/sdb:100M centos:7


--device-write-bps:限制写入某个设备的bps(数据量)

格式:docker run -itd --name 名字 --device-read-bps 设备名:写入额度 centos:7
例: docker run -d --device-write-bps /dev/sdb:50M centos:7