2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

在生产环境中安全地运行 Docker 容器

  • 2016-12-29
  • 本文字数:1118 字

    阅读完需:约 4 分钟

在生产环境中,强化 Docker 容器的一种方法就是使它们不可变,也就是只读。安全地运行容器的其他方法还包括最小化受攻击面和应用 Linux 安全过程,标准 Linux 安全过程和针对容器环境的特定过程都要应用。

在启动容器时传入–read-only 标记就可以在只读模式下运行它。这可以防止任何进程写入文件系统。任何试图写入的动作都会导致错误。运行这种不可变的基础设施也与其他软件部署流水线的最佳实践相吻合。

尽管不可变性可以阻止任何恶意脚本的执行,可以禁止通过在容器里运行的其他软件暴露出来的漏洞而引起的改动。但是在现实生产环境中,这种模式又是不是适用于应用程序呢?比如,要产生的日志文件和要使用数据库的应用程序就需要可写性。

写日志的一个可能的解决方案可以是使用一个集中的日志系统,比如 Elasticsearch/Logstash/Kibana(ELK),这样所有的日志都被收集在一个中心节点,可能是在另一个容器中,就不是用户可以直接访问的了。另一种替代的方案是在启动容器时,通过使用–log-driver 标记将日志导出到容器之外。对于那些需要对 /tmp 之类的临时目录有写入权限的应用程序,一种解决办法是在容器里为这些目录加载一个临时的文件系统

终端用户不能直接访问数据库,所以风险较低。然而,这并不排除受到攻击的可能,除非面对用户的应用程序得到了强化。

在不可避免地要有一个可写的文件系统的情况下,Docker 提供了审计和变化的回滚功能。在 Docker 容器里的文件系统是作为一系列层的堆叠。当创建一个新容器时,将在顶部添加一个新层,该层可以写入。Docker 存储驱动程序隐藏了这些细节,并将它作为一个普通的文件系统交付给用户。对正在运行的容器的写入将写入此新层。这通常被称为写时拷贝(Copy-On-Write,COW)。

在 Docker 容器里很容易检测到配置漂移或预期的配置变更。“docker diff”命令可以显示对文件系统的更改——无论更改操作是文件添加、删除还是修改。

除了在可能的情况下运行一个只读容器,我们提出以下建议,以确保在生产环境中容器的安全:

  • 运行一个 Alpine Linux 之类的最小的镜像,Alpine Linux 是基于安全思想而设计的。它的内核上打了一个 grsecurity 的非官方移植的补丁。 Grsecurity 是一套对 Linux 内核的安全增强方法,它包括权限控制以及消除基于漏洞的内存崩溃的可能,具体方法是将那些使系统可能被攻击的方法减少到最少。
  • 限制对 CPU、RAM 等资源的使用,以防止 DoS 攻击。
  • 在操作系统中配置线程和进程限制。
  • 采用 sysctl 之类标准的 Linux 内核强化程序。
  • 每个容器中只运行一个应用程序。建议这么做,是因为它减小了受攻击面,即对于一个给定的容器,可能的漏洞数量就只取决于在该容器上运行的应用程序了。

阅读英文原文 Running Docker Containers Securely in Production

2016-12-29 18:002841
用户头像

发布了 152 篇内容, 共 75.6 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

DSC:数仓SQL脚本迁移的神奇工具

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

Tapdata Cloud 基础课:新功能详解之「授权系统自动分析」,一键定位任务报错原因,快速获取修复建议

tapdata

大数据

低代码平台的流程引擎设计指南

Baidu AICLOUD

低代码 爱速搭

3d建筑软件:Vectorworks 2023激活版

真大的脸盆

Mac Mac 软件 3D建筑动画

关于 SysOM 2.0 网络/存储相关诊断功能介绍及案例展示 | 第 72-73 期

OpenAnolis小助手

开源 直播 系统运维 技术分享 龙蜥大讲堂

Refit — 让Http请求变得更简单

青柚1943

微服务 REST API NET6 Refit

关于服务器数据迁移,介绍在服务器数据迁移计划中的7个步骤

镭速

2023年3月中国数据库排行榜:开源OTO揽获前三,传统达梦、GBase触机便发

墨天轮

数据库 opengauss TiDB oceanbase 国产数据库

家电类投诉高居榜首,拿什么拯救“投诉了个寂寞”的消费者?

Openlab_cosmoplat

工业互联网 开源社区 家电

2023主流系统 固资管理助力转型升级一步到位

加入高科技仿生人

低代码 企业数字化转型 资产管理

DBA必备的Mysql知识点:数据类型和运算符

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

办公要有新享法,「MIAOYUN生活梦想家」焕新升级!

MIAOYUN

搬迁公告 乔迁 办公升级

Seata-go 1.1.0 发布,补齐 AT 模式支持

SOFAStack

开源 互联网 开发者 开发 Seata框架

我在京东做研发第五期:京东云自研服务器,如何将开发成本降低 60% 的同时还更低碳环保?

京东科技开发者

cpu 服务器 环保 节能 企业号 3 月 PK 榜

2023 MacBook Pro 与2021 Macbook Pro有哪些差别

互联网搬砖工作者

MacBook M1芯片 MacBook Pro M2芯片

AREX-携程无代码侵入的自动化回归测试平台

AREX 中文社区

开源 自动化测试 回归测试

报名开启!KunlunBase今年首场线下MeetUP,期待与您的见面!

KunlunBase昆仑数据库

Meetup kunlunbase 内核技术

为什么CMS和G1都改用三色标记法,是可达性分析不香吗?

Java全栈架构师

Java 程序员 后端 JVM 架构师

倒计时2天:百度“文心一言”即将上线!

引迈信息

人工智能 低代码 AIGC ChatGPT 文心一言

研发效能度量从 0 到 1 的『六脉神剑』

思码逸研发效能

研发效能 效能度量 研发效能度量

Sugar BI 增强分析能力全场景解析

Baidu AICLOUD

BI

量化交易(机器人)开发系统现货合约策略

薇電13242772558

量化策略

从企业数据产品的演进,看指标平台发展趋势

Kyligence

数据分析 指标平台

Spring Boot 集成 Liquibase,数据库也能做版本控制!

Java你猿哥

Java spring Spring Boot java 编程

【云原生】k8s 环境快速部署(一小时以内部署完)

Java你猿哥

Java 学习 k8s Spring Boot ssm

请求响应--MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 订阅 企业号 3 月 PK 榜

MySQL创建用户与授权

源字节1号

软件开发 前端开发 后端开发 小程序开发

Rust的安全性和稳健型

非凸科技

功能强大的数据库管理工具:DBeaverEE 激活版

真大的脸盆

Mac 数据库管理工具 数据库管理 Mac 软件 数据库分析

实践Pytorch中的模型剪枝方法

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

在生产环境中安全地运行Docker容器_Linux_Hrishikesh Barua_InfoQ精选文章