文档章节

新IT运维时代 | Docker运维之最佳实践-下篇

有容云
 有容云
发布于 2017/04/10 15:05
字数 1013
阅读 12
收藏 0

上篇针对操作系统、主机配置、容器镜像、容器运行时四大方面分享一些Docker的运维经验,本篇将着重在Docker Daemon参数和权限两个方面进一步分享。(阅读上篇请点击右侧:新IT运维时代 | Docker运维之最佳实践-上篇)

 

Docker Daemon为Docker的守护进程,大致可以分为Docker Server、Engine和Job三部分。Docker Daemon可以认为是通过Docker Server模块接受Docker Client的请求,并在Engine中处理请求,然后根据请求类型,创建出指定的Job并运行。

 

以下为Docker Daemon的架构示意图:

Docker Daemon参数

 

从上图不难看出Docker Daemon的核心地位,所以它的配置也尤为重要,下文会从安全、性能方面入手,下面具体讲讲该怎么配置Docker Daemon参数:

 

  • 限制容器之间网络通信:在同一台主机上若不限制容器之间通信,容器之间就会暴露些隐私的信息,所以推荐关闭,设置参数如:docker daemon--icc=false;

  • 日志级别设置为info:这样除了debug信息外,可以捕获所有的信息,设置参数如:  docker daemon --log-level="info";

  • 允许Docker Daemon修改iptables:这样可以自动避开错误的网络配置导致的容器和外部的访问问题,设置参数如:docker daemon--iptables=true;

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

  • 推荐使用Overlayfs作为Docker的存储驱动:Docker支持很多种储存驱动,CentOS默认的Docker存储驱动为devicemapper,Ubuntu默认的Docker存储驱动为aufs,那Docker储存驱动该怎么选择呢,可以参考下图的对比分析:


 

  • 推荐为Docker Daemon配置TLS认证:推荐指定Docker Daemon的监听IP、端口及unix socket,并配置TLS认证,通过Docker Daemon的IP+端口访问,设置参数如:'--tlsverify' 、'--tlscacert' 、'--tlscert'、'--tlskey' ;

  • 推荐为Docker Daemon开启用户空间支持:Docker Daemon支持Linux内核的user namespace,为Docker宿主机提供了额外的安全,容器使用有root权限的用户,则这个用户亦拥有其宿主机的root权限,外部可以通过容器反向来操控宿主机,设置参数如:docker daemon --userns-remap=default;

  • 推荐为Docker Daemon配置默认的CGroup:某个程序可能会出现占用主机上所有的资源,导致其他程序无法正常运行,或者造成系统假死无法维护,这时候用 cgroups 就可以很好地控制进程的资源占用,设置参数如:docker daemon--cgroup-parent=/foobar;

  • 推荐为Docker配置集中的远程日志收集系统:Docker支持很多种日志驱动,配置集中的远程日志系统用来存储Docker日志是非常有必要的,设置参数如:docker run--log-driver=syslog --log-opt syslog-address=tcp://ip;

  • 推荐使用Docker Registry v2版本:v2版本在性能与安全性方面比v1都增强了很多,如安全性上的镜像签名,可设置参数如:docker daemon--disable-legacy-registry;

 

Docker Daemon权限

 

Docker Daemon相关文件和目录的属性及其权限关系到整个Docker运行时的安全,从运维角度来看,合理的规划好属性及其权限尤为重要,下面具体讲讲该怎么配置Docker Daemon权限。

 

1、设置Docker Daemon一些相关配置文件的属性及其权限

2、设置Docker Daemon一些相关目录的属性及其权限

/etc/docker目录保存的是容器认证及key信息, 设置目录的属性为root:root,权限为755;

/etc/docker/certs.d/目录保存的是registry证书相关的文件,设置目录的属性为root:root,权限为444。

 

本文来源:http://www.youruncloud.com/blog/125.html

© 著作权归作者所有

有容云
粉丝 2
博文 52
码字总数 38431
作品 0
深圳
私信 提问
容器与DevOps资料下载汇总

容器助力企业数字化转型(PDF下载) 多租户Kubernetes实践:从容器运行时到SDN(PDF下载) 容器环境下的智能运维技术研发与实践(PDF下载) 携程容器云优化与实践(PDF下载) 容器化引领IT新...

云木西
2018/07/19
0
0
数人云Meetup上海|告别人肉运维

大年初五, Gitlab因误删数据宕机超24小时, 五重备份无一有效, 陷入忧伤的不止Gitlab团队和丢失数据的707个用户,还有坐等直播,关心监控、备份、应急灾备等解决方案的广大技术同学。 本次...

数人云
2017/02/13
88
0
WOT2015互联网运维与开发者大会

有人说,运维从传统部署到大规模自动化的转变,Coding能力要求越来越高。 也有人说,大部分IT企业都是重研发轻运维,在云计算下思想急需转变。 更有人说,DevOps在运维领域中,一场以它为中心...

阿娇OSC
2015/03/04
3.8K
10
WOT2015互联网运维与开发者大会

有人说,运维从传统部署到大规模自动化的转变,Coding能力要求越来越高。 也有人说,大部分IT企业都是重研发轻运维,在云计算下思想急需转变。 更有人说,DevOps在运维领域中,一场以它为中心...

阿娇OSC
2015/03/04
6
0
数人云Meetup上海|告别人肉运维

大年初五, Gitlab因误删数据宕机超24小时, 五重备份无一有效, 陷入忧伤的不止Gitlab团队和丢失数据的707个用户,还有坐等直播,关心监控、备份、应急灾备等解决方案的广大技术同学。 本次...

数人云
2017/02/13
99
0

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部