乔克视界 乔克视界
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档

乔克

云原生爱好者
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档
  • Docker

    • Docker简介
    • Docker的架构
    • Docker的安装
    • Docker基础用法
    • Docker镜像和容器的基本操作
    • Docker的网络模式
    • Docker存储卷
    • Dockerfile介绍
    • 多阶段构建
    • 镜像加速
    • Docker的NS和CGroups
    • Docker用法整理
    • Docker和Containerd的区别
    • 镜像安全
      • 以非root用户运行镜像
      • 保持镜像最小化
      • 对镜像进行安全扫描
  • Golang

  • AIOps

  • 专栏
  • Docker
乔克
2025-07-17
目录

镜像安全

容器为我们提供应用运行环境,所以在制作镜像的时候应该重点关注镜像安全问题,而不是随意制作。

这里总结以下几点:

  • 以非root用户运行
  • 保持镜像最小化
  • 对镜像进行安全扫描

# 以非root用户运行镜像

在制作镜像的时候,默认都是以root用户在容器中运行,虽然此root用户和服务器上的root用户有区别,但是黑客可以利用这个用户来获取API密钥,令牌,密码等私密信息,或者通过提权等干扰服务器主机。

所以我们在制作镜像的时候要使用非root用户,比如下面一个java服务:

FROM openjdk:8-jre-alpine
RUN addgroup -g 1000 -S joker && \
    adduser joker -D -G joker -u 1000 -s /bin/sh
USER joker
ADD --chown=joker springboot-helloworld.jar /home/joker/app.jar
EXPOSE 8080
WORKDIR /home/joker
CMD  exec java -Djava.security.egd=file:/dev/./urandom -jar app.jar
1
2
3
4
5
6
7
8

运行容器后,即可看到是以joker用户起的应用。1e8c614594bbd4af514edd81a9bad0ba MD5

# 保持镜像最小化

镜像并非越大越好,也并非越小越好,适合当前需求的镜像才是最好。不过在制作镜像的时候要坚持最小化原则,只安装需要的软件和包。

可以通过docker images 查看镜像大小,如下:

ubuntu                                                                            latest               f643c72bc252        7 weeks ago         72.9MB
1

# 对镜像进行安全扫描

把容器类比于主机,那么容器的安全和主机的安全同等重要,所以要镜像对每一个镜像进行安全扫描,发现高危漏洞及时打补丁,这样才能随时保持一个相对安全的运行环境。

目前Harbor 2.0以上已经可以自定义镜像扫描规则,也可以定义拦截规则,可以有效的发现镜像漏洞,其他公有仓库也有类似的功能。当然我们还可以在做CI的阶段对制品镜像进行扫描,通过的才交付。具体怎么做根据不同的需求而定。

上次更新: 2025/07/18, 18:41:03
Docker和Containerd的区别
开发环境搭建

← Docker和Containerd的区别 开发环境搭建→

最近更新
01
2025年,SRE在企业中可以做哪些事
07-18
02
SRE 如何提升自己在团队中的影响力
07-18
03
使用Go开发MCP服务
07-18
更多文章>
Theme by Vdoing | Copyright © 2019-2025 乔克 | MIT License | 渝ICP备20002153号 |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式