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. mysql分页查询优化

    由于MySql的分页机制:并不是跳过 offset 行,而是取 offset + N 行,然后返回放弃前 offset 行,返回N 行, 所以当 offset 特别大的时候,效率就非常的低下,要么控制 ...

  2. Windows7 x64 编译Dlib库

    最近用到Dlib库,需要先编译. 本文利用 cmake + Sublime Text 2 + MinGW实现编译. 1. 下载dlib源码[dlib18.17]http://pan.baidu.com ...

  3. 《分布式Java应用之基础与实践》读书笔记三

    对于大型分布式Java应用与SOA,我们可以从以下几个方面来分析: 为什么需要SOA SOA是什么 eBay的SOA平台 可实现SOA的方法 为什么需要SOA   第一个现象是系统多元化带来的问题,可 ...

  4. TCP/IP协议精华笔记

    1.简介 TCP/IP协议并非单指TCP协议.IP协议,它是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议.ICMP(Internet Control Mes ...

  5. php web开发安全之csrf攻击的简单演示和防范(一)

    csrf攻击,即cross site request forgery跨站(域名)请求伪造,这里的forgery就是伪造的意思.网上有很多关于csrf的介绍,比如一位前辈的文章浅谈CSRF攻击方式,参考 ...

  6. html部署到tomcat

    首先电脑上应该装好java和Tomcat,并设置好它们的环境变量. 设置完成后,启动Tomcat ,点击\bin\tomcat6,打开浏览器输入网址:http://localhost:8080,如果出 ...

  7. ASP.NET MVC, Url长度过长问题解决,404.15问题

    最近在处理一个问题的时候,发现他们存在一个大量数据放在URL中传递的过程,当数据达到一定数量的时候就会报出404.15问题. 运行环境是在IIS8,经过查询之后发现,URL此时最大长度为2048,肯定 ...

  8. Hbuilder常用功能汇总

    引用 样式表: mui.min.css Js:mui.min.js 常用功能 获取页面 var webView=plus.webview.currentWebview();//获取当前页 var we ...

  9. Android 模块化探索与实践

    首发于<程序员>杂志五月刊 一.前言 万维网发明人 Tim Berners-Lee 谈到设计原理时说过:"简单性和模块化是软件工程的基石:分布式和容错性是互联网的生命." ...

  10. 头皮发麻的HTML课时一

    话说我都不知道有多少天没有更新我的随笔了,不过我忽的一下发现到灵魂深处的罪孽:好吧,不扯淡了,其实就是自己懒得外加上HTML这个东西又实在是很重要,所以良心发现把我自己所学的给记录下来,我会尽量的写的 ...