1. Docker Daemon 配置参数

  1. 限制容器之间网络通信
    在同一台主机上若不限制容器之间通信,容器之间就会暴露些隐私的信息,所以推荐关闭

    docker daemon –icc=false
  2. 使用安全模式访问镜像仓库

    Docker Daemon支持安全模式(默认)和非安全模式(–insecure-registry)访问镜像仓库,推荐镜像仓库配置CA证书,Docker Daemon配置安全访问模式,采用TLS安全传输协议;

  3. 使用Docker Registry v2版本

    v2版本在性能与安全性方面比v1都增强了很多,如安全性上的镜像签名等.

    docker daemon –disable-legacy-registry;
  4. 为Docker Daemon配置TLS认证

    推荐指定Docker Daemon的监听IP、端口及unix socket,并配置TLS认证,通过Docker Daemon的IP+端口访问

    –tlsverify
    –tlscacert
    –tlscert
    –tlskey
  5. 为Docker Daemon开启用户空间支持

    Docker Daemon支持Linux内核的user namespace,为Docker宿主机提供了额外的安全,容器使用有root权限的用户,则这个用户亦拥有其宿主机的root权限,外部可以通过容器反向来操控宿主机,

    docker daemon –userns-remap=default
  6. 为Docker Daemon配置默认的CGroup

    某个程序可能会出现占用主机上所有的资源,导致其他程序无法正常运行,或者造成系统假死无法维护,这时候用 cgroups 就可以很好地控制进程的资源占用

    docker daemon –cgroup-parent=/foobar
  7. 日志级别
    日志级别设置为info:这样除了debug信息外,可以捕获所有的信息

    docker daemon –iptables=true
  8. 为Docker配置集中的远程日志收集系统

    Docker支持很多种日志驱动,配置集中的远程日志系统用来存储Docker日志是非常有必要的.

    docker run –log-driver=syslog –log-opt syslog-address=tcp://ip;

    Docker 支持的日志驱动, 官方文档

Driver Desc
none No logs will be available for the container and docker logs will not return any output.
json-file The logs are formatted as JSON, The default logging driver for docker
syslog Writes logging messages to the syslog facility. The syslog daemon must be running on the host machine.
journald Writes log messages to the journald. The journald daemon must be running on the host machine.
gelf Write log messages to the Graylog Extended Log Format (GELF) endpoint such as Graylog or Logstash.
fluentd Write log messages to fluentd (forward input). The fluentd deamon must be running on the host machine.
awslogs Write log messages to Amazon CloudWatch Logs.
splunk Writes log messages to splunk using the HTTP Event Collector.
etwlogs Wrtites log message as Event Tracing for Windows (ETW). Only available on Windows platforms.
gcplogs Write log messages to Google Cloud Platform (GCP) Logging.
  1. 存储驱动

    推荐使用Overlayfs作为Docker的存储驱动:Docker支持很多种储存驱动,CentOS默认的Docker存储驱动为devicemapper,Ubuntu默认的Docker存储驱动为aufs,

# 特点 优点 缺点 适用场景
Aufs 联合文件系统, 未并入内核主线文件级存储 作为 docker 的第一个存储驱动, 历史较久, 比较稳定,且在生产中大量实践过, 有较强的社区支持 有很多层, 在做写时复制操作时, 如果文件比较大,且存在比较低的层, 可能会慢一些 大并发但少IO 的场景
OverlayFS 联合文件系统, 并入内核主线文件级存储 只有两层 不管修改的内容大小都会复制整个文件, 对大文件进行修改显示比小文件要消耗更多的时间 大并发但少IO的场景
DeviceMapper 并入内核主线文件级存储 块级别, 无论是大文件还是小文件都只复制需要修改的块, 而不是整个文件 支持共享存储, 表示当有多个容器读同一个文件时, 需要生成多个复本, 在很多容器启停的情况下, 可能会导致磁盘溢出 适合IO密集的场景
Btrfs 并入内核主线文件级存储 可以向 DeviceMapper 直接操作底层设备, 支持动态添加设备 不支持共享存储, 表示当有多个容器读同一个文件时, 需要生成多个复本 不适合在高密度容器的 PaaS 平台上使用
ZFS 把所有设备集中到奥一个存储池中来进行管理 支持多个容器共享一个缓存块, 适合内存大的场景 COW 使碎片化问题更加严重, 文件在硬件上的物理地址变得不再连续, 顺序读会变得性能比较差 适合 PassS 和 高密度场景

2. Docker Daemon权限

Docker Daemon相关文件和目录的属性及其权限关系到整个Docker运行时的安全.
设置Docker Daemon一些相关配置文件的属性及其权限

配置文件 属性设置 权限设置 备注信息
docker.service root:root 644
docker.sock root:root 660
docker.json root:root 644
docker root:root 644
TLS CA certificate root:root 444 通过 --tlscacert 参数传递生成的文件属性
Docker server certificate root:root 444 通过 --tlscert 参数传递生成的文件属性
Docker server certificate key root:root 400 通过 --tlskey 参数传递生成的文件属性
/etc/docker root:root 755 容器认证及key信息
/etc/docker/certs.d/ root:root 444 registry 证书相关的文件

Docker Daemon 参数最佳实践的更多相关文章

  1. Docker 使用杂记 - 最佳实践尝试 - 实战

    目录 Docker 使用杂记 - 最佳实践尝试 - 实战 Docker简介 项目背景 内在原因 外在原因 基础镜像 需求 镜像维护者 工作文件夹 文件 ADD COPY 宗卷 命令 入口点 Docke ...

  2. Docker监控:最佳实践以及cAdvisor和Prometheus监控工具的对比

    在DockerCon EU 2015上,Brian Christner阐述了“Docker监控”的概况,分享了这方面的最佳实践和Docker stats API的指南,并对比了三个流行的监控方案:cA ...

  3. Docker日志收集最佳实践

    传统日志处理 说到日志,我们以前处理日志的方式如下: · 日志写到本机磁盘上 · 通常仅用于排查线上问题,很少用于数据分析 ·需要时登录到机器上,用grep.awk等工具分析 那么,这种方式有什么缺点 ...

  4. Java 服务 Docker 容器化最佳实践

    转载自:https://mp.weixin.qq.com/s/d2PFISYUy6X6ZAOGu0-Kig 1. 概述 当我们在容器中运行 Java 应用程序时,可能希望对其进行调整参数以充分利用资源 ...

  5. 【原创】Docker实战 Dockerfile最佳实践&&容器之间通信

    官方最佳实践文档 https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#from Docker实战(三十) ...

  6. Docker 日志管理最佳实践

    开源Linux 回复"读书",挑选书籍资料~ Docker-CE Server Version: 18.09.6 Storage Driver: overlay2 Kernel V ...

  7. Docker 跟 NodeJs 最佳实践

    Level-1 简单实现 需求:简单的构建一个app应用并且用docker部署.Dockerfile编写为: FROM node:7.3.0 RUN mkdir -p /usr/src/app COP ...

  8. 启动Activity,传递参数最佳实践

    优化后的好处不言而喻,OtherActivity中所需要的参数都在方法参数中体现,减少了交流询问的成本. (1)MainActivity.java OtherActivity.openActivity ...

  9. JVM参数最佳实践:元空间的初始大小和最大大小

    本文阅读时间大约4分钟. JVM加载类的时候,需要记录类的元数据,这些数据会保存在一个单独的内存区域内,在Java 7里,这个空间被称为永久代(Permgen),在Java 8里,使用元空间(Meta ...

随机推荐

  1. npm 常用命令详解

    本文以Windows平台上做测试,以gulp为示例做教程,出自作者白树,转载请声明出处! 目录 npm是什么 npm install 安装模块 npm uninstall 卸载模块 npm updat ...

  2. poj2481 Cows 树状数组

    题目链接:http://poj.org/problem?id=2481 解题思路: 这道题对每组数据进行查询,是树状数组的应用.对于二维的树状数组, 首先想到排序.现在对输入的数据按右值从大到小排序, ...

  3. 精选this关键字的指向规律你记住了吗

      1.首先要明确:           谁最终调用函数,this指向谁           this指向的永远只可能是对象!!!!!          this指向谁永远不取决于this写在哪,而取 ...

  4. spring boot无法启动,或者正常启动之后无法访问报404的解决办法

    以前用spring boot都是用idea的自动创建,或者是用的Jhipster创建的,就没有深究怎么去搭建.但是今天晚上心血来潮,想自己搭一个demo来整合一些技术,于是就花一点时间来手动搭.因为今 ...

  5. python selenium 元素定位(三)

    上两篇的博文中介绍了python selenium的环境搭建和编写的第一个自动化测试脚本,从第二篇的例子中看出来再做UI级别的自动化测试的时候,有一个至关重要的因素,那就是元素的定位,只有从页面上找到 ...

  6. GTD:让大脑用来思考,而不是用来记事!

    前段时间听刘润大师分享了一套GTD时间管理方法理论,感觉非常受用!现拿来跟大家分享下,这套方法是刘润老师践行20多年总结提炼的精华,经亲自实践确实行之有效. 俗话说:工欲善其事,必先利其器!人生也是如 ...

  7. 使用r.js优化静态资源

    r.js主要功能:优化项目的静态资源.可以简化压缩代码,减少体积.指定模块将多个组件合并为一个文件,减少HTTP请求数量.具体使用步骤如下: 先把 r.js 文件放到项目根目录,再于项目根目录内新建一 ...

  8. UICollection无法下拉刷新的问题

    当UICollectonView加载的内容不够多的时候会出现无法上下拉刷新的问题,折腾了半天,原来是有一个属性没有打开 设置 : self.collectionView.alwaysBounceVer ...

  9. struts2.1.6教程五、拦截器

    在前面我们已经初步使用过拦截器,下面继续细细探讨. 1.概述strust2中的拦截器 拦截器是Struts2框架的核心,它主要完成解析请求参数.将请求参数赋值给Action属性.执行数据校验.文件上传 ...

  10. css浮动--float/clear通俗讲解(转载)

    本文为转载 (出处:http://www.cnblogs.com/iyangyuan/archive/2013/03/27/2983813.html) 教程开始: 首先要知道,div是块级元素,在页面 ...