zoukankan      html  css  js  c++  java
  • Docker(十):Docker安全

    1、Docker安全主要体现在如下方面

      a)Docker容器的安全性

      b)镜像安全性

      c)Docker daemon安全性

    2、安装策略

      2.1 Cgroup

        Cgroup用于限制容器对CPU、内存的使用。

        设置容器CPU权重为100,默认为1024

          docker run --rm -ti -c 100 ubuntu bash

        限制容器对CPU资源的使用上限

          docker run --rm -ti --cpu-period=500000 --cpu-quota=250000 ubuntu /bin/bash

          表示这个容器每0.5秒最多运行0.25秒

        绑定CPU运行

          docker run --rm -ti --cpuset-cpus=0,1 ubuntu bash

      2.2 限制内存

        docker run --rm -ti -m 200M ubuntu bash

        限制容器内存为200M

        注意:当内存达到峰值时会使用swap分区,可通过--memory-swap限制swap分区的使用量

      2.3 限制块设备I/O

        测试当前写入速率

          root@e977b6cb88d7:/# dd if=/dev/zero of=testfile0 bs=8k count=5000 oflag=direct
          5000+0 records in
          5000+0 records out
          40960000 bytes (41 MB, 39 MiB) copied, 0.313395 s, 131 MB/s

        在容器上查看挂载详情

          root@e977b6cb88d7:/# mount | grep e977b6cb88d7
          /dev/mapper/docker-253:0-2394716-e977b6cb88d7ea106beb80851728a05e26b3458cb2b05514f20d870892989171 on / type ext4       (rw,relatime,barrier=1,stripe=16,data=ordered)

        在宿主机查看设备号

          [root@MediaServer ~]# mount | grep e977b6cb88d7
          [root@MediaServer ~]# ll /dev/mapper/docker-253:0-2394716-e977b6cb88d7ea106beb80851728a05e26b3458cb2b05514f20d870892989171
          lrwxrwxrwx 1 root root 7 10月 12 21:07 /dev/mapper/docker-253:0-2394716-e977b6cb88d7ea106beb80851728a05e26b3458cb2b05514f20d870892989171 -> ../dm-4
          [root@MediaServer ~]# ll /dev/dm-4
          brw-rw---- 1 root disk 253, 4 10月 12 21:07 /dev/dm-4    #253,4为设备号

        限制写入速度为每秒5120000字节

          echo "253:4 5120000" > /cgroup/blkio/docker/e977b6cb88d7ea106beb80851728a05e26b3458cb2b05514f20d870892989171/blkio.throttle.write_bps_device

        再次测试容器写入速率

          root@e977b6cb88d7:/# dd if=/dev/zero of=testfile0 bs=8k count=5000 oflag=direct
          5000+0 records in
          5000+0 records out
          40960000 bytes (41 MB, 39 MiB) copied, 9.37702 s, 4.4 MB/s

      2.4 ulimit限制

        全局默认设置:

          docker daemon --default-ulimit cpu=1200

        单独设置:

          docker run --rm -ti --ulimit cpu=1200 ubuntu bash

          root@6667c7f607f8:/# ulimit -t
          1200

      2.6 容器+虚拟化

        将容器部署在虚拟机中

      2.7 日志审计

        Docker daemon支持log-driver参数,目前支持的类型有:none、json-file、syslog、gelf、fluentd,默认的驱动是json-file。

        除了Docker daemon指定日志驱动外,还可以对单个容器指定驱动,

        #docker run --rm -ti --log-driver="syslog" ubuntu bash

        然后通过docker inspect可以查看容器使用的日志驱动

        #docker inspect 容器ID | grep Type

          "Type": "syslog",

        注意:只有json-file日志驱动才支持docker logs

      2.8 监控  

        root@HX-StrMedia:~# docker stats container1

        CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
        container1 0.00% 5.005 MB / 33.73 GB 0.01% 1.296 kB / 648 B 7.766 MB / 0 B

        CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
        container1 0.00% 5.005 MB / 33.73 GB 0.01% 1.296 kB / 648 B 7.766 MB / 0 B

        CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
        container1 0.00% 5.005 MB / 33.73 GB 0.01% 1.296 kB / 648 B 7.766 MB / 0 B

      2.9 文件系统级别防护

        docker run --rm -ti --read-only --name=container1 centos bash

        [root@fd582b88f6fb /]# echo "Test" > Test
        bash: Test: Read-only file system

      2.10 Capability

        root@HX-StrMedia:~# docker run --rm -ti --cap-drop=chown centos bash
        [root@6a6dc05cbced /]# chmod 777 /etc/hosts
        [root@6a6dc05cbced /]# chown 2:2 /etc/hosts
        chown: changing ownership of '/etc/hosts': Operation not permitted

        root@HX-StrMedia:~# docker run --rm -ti --cap-drop=all centos bash

  • 相关阅读:
    精通特征工程
    reduce_mem_usage 降低内存使用 绘制学习率曲线和验证曲线
    正态性检验 Python正态性检验
    pd.melt Pandas 的melt的使用
    pandas dataframe 格式设置 set_option
    常用模块
    第9章 列表生成式、生成器和迭代器
    全栈作业(一)
    第8章 装饰器、模块和包
    第7章 Python 函数
  • 原文地址:https://www.cnblogs.com/dukuan/p/7658172.html
Copyright © 2011-2022 走看看