Docker 入门教程(五)

原创 2016年06月01日 13:55:33

Docker安全


我们必须高度重视开源软件的安全问题,当开发者在使用Docker时,从本地构建应用程序到生产环境部署是没有任何差异的(译者注:作者的言外之意是更应该重视Docker的安全问题)。当Docker被越来越多的平台使用的时候,我们需要严格保证Docker作为一个项目或者平台的安全性。

因此,我们决定在Docker系列教程的第五篇来讨论Docker安全性的相关问题以及为什么会它们影响到Docker的整体安全性。由于Docker是LXC的延伸,它也很容易使用LXC的安全特性。

在本系列的第一篇文章中,我们知道docker run命令可以用来运行容器。那运行这个命令后,Docker做了哪些具体的工作呢?具体如下:
  1. docker run命令初始化。
  2. Docker 运行 lxc-start 来执行run命令。
  3. lxc-start 在容器中创建了一组namespace和Control Groups。

对于那些不知道namespace和control groups的概念的读者,我在这里先给他们解释一下:namespace是隔离的第一级,容器是相互隔离的,一个容器是看不到其它容器内部运行的进程情况(译者注:namespace系列教程可以阅读DockerOne上的系列教程)。每个容器都分配了单独的网络栈,因此一个容器不可能访问另一容器的sockets。为了支持容器之间的IP通信,您必须指定容器的公网IP端口。

Control Groups是非常重要的组件,具有以下功能:
  • 负责资源核算和限制。
  • 提供CPU、内存、I/O和网络相关的指标。
  • 避免某种DoS攻击。
  • 支持多租户平台。

Docker Daemon的攻击面

Docker Daemon以root权限运行,这意味着有一些问题需要格外小心。
下面介绍一些需要注意的地方:
  • 当Docker允许与访客容器目录共享而不限制其访问权限时,Docker Daemon的控制权应该只给授权用户。
  • REST API支持Unix sockets,从而防止了cross-site-scripting攻击。
  • REST API的HTTP接口应该在可信网络或者VPN下使用。
  • 在服务器上单独运行Docker时,需要与其它服务隔离。

一些关键的Docker安全特性包括:
  1. 容器以非特权用户运行。
  2. Apparmor、SELinux、GRSEC解决方案,可用于额外的安全层。
  3. 可以使用其它容器系统的安全功能。

Docker.io API

用于管理与授权和安全相关的几个进程,Docker提供REST API。以下表格列出了关于此API用于维护相关安全功能的一些命令。

part-5-1.png

docker入门教程

  • 2017年12月06日 15:34
  • 6.27MB
  • 下载

Docker 入门教程(七)

Docker API DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和Docker Hub A...

Docker入门教程 Part 1 基础概念 - 镜像、容器、仓库

第一篇笔记,先总体介绍Docker,及它与虚拟机技术的区别,最后再介绍Docker的最基础的三大组件概念。...
  • iotisan
  • iotisan
  • 2017年10月19日 16:18
  • 169

Docker Swarm入门教程

迄今为止,Docker Swarm问世已有一年的时间。Docker Swarm的首次隆重亮相要追溯到2014年,Docker官方在当年12月的DockerConEU峰会上正式推出了Docker S...

Docker入门教程(一)介绍

 【编者的话】DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了Docker的基础概念以及Docker的安装。 Docker是一个新的容器化的...

Docker入门教程(一)——基本介绍

1、Docker概念Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,...
  • eff666
  • eff666
  • 2017年03月09日 18:46
  • 210

docker入门教程

什么是Docker? 简介:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs...

Day 21:Docker 入门教程

几个月以前,红帽(Red Hat)宣布了在 Docker 技术上和 dotCloud 建立合作关系。在那时候,我并没有时间去学习关于 Docker 的知识,所以在今天,趁着这个 30 天的挑战,我...
  • dc_726
  • dc_726
  • 2014年04月03日 10:05
  • 2736

Docker 入门教程(三)

易于自动化的命令 Dockerfile包含创建镜像所需要的全部指令。基于在Dockerfile中的指令,我们可以使用Docker build命令来创建镜像。通过减少镜像和容器的创建过程来简化部署...

Day 21:Docker 入门教程

几个月以前,红帽(Red Hat)宣布了在 Docker 技术上和 dotCloud 建立合作关系。在那时候,我并没有时间去学习关于 Docker 的知识,所以在今天,趁着这个 30 天的挑战,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Docker 入门教程(五)
举报原因:
原因补充:

(最多只允许输入30个字)