desolate'hao
  • |
  • 🏠 主页
  • 🔍 搜索
  • 📚 文章
  • 🧩 标签
  • ⏱️ 时间轴
  • 🙋🏻‍♂️ 关于

技

不经一番寒彻骨,怎得梅花扑鼻香

Docker-DockerFile

能不能从0或者从其他镜像进行编写配置文件? 能不能先写好配置文件然后一键构建镜像? Dockerfile 它是一个文本文件,里面包含了一系列指令(Instructions)。 它是镜像的“配方”或“蓝图”。docker build 命令会读取这个文件,然后根据指令一步步地构建出一个新的 Docker 镜像。 核心思想:分层构建。Dockerfile 中的每一条指令都会创建一个新的镜像层(Layer)。Docker 会巧妙地缓存这些层,如果指令没有变化,下次构建时会直接使用缓存,大大加快了构建速度。 常用指令 指令 作用 示例与说明 FROM 指定基础镜像。所有构建都必须从一个基础镜像开始。 FROM python:3.9-slim 最佳实践:选择官方、轻量(如 slim, alpine)且版本明确的镜像。 WORKDIR 设置工作目录。后续的 RUN, CMD, COPY 等指令都会在这个目录下执行。 WORKDIR /app 最佳实践:先设置工作目录,避免在各处使用绝对路径,让 Dockerfile 更清晰。 COPY 复制文件或目录。从构建上下文(通常是 Dockerfile 所在目录)复制到镜像内部。 COPY ./requirements.txt . . 代表当前工作目录,即 /app。推荐使用 COPY 而不是 ADD,因为它的行为更明确。 RUN 在镜像构建过程中执行命令。主要用于安装软件包、编译代码等。 RUN pip install -r requirements.txt 每条 RUN 指令都会创建一个新的层。为了减小镜像体积,应将多个命令用 && 连接起来。 EXPOSE 声明容器运行时监听的端口。这只是一个元数据声明,不起实际的端口映射作用。 EXPOSE 5000 它告诉使用者这个镜像的服务会监听 5000 端口,实际映射仍需在 docker run -p 中指定。 ENV 设置环境变量。这个变量在镜像的整个生命周期中都存在。 ENV FLASK_APP=app.py 用于配置应用,非常灵活。 CMD 容器启动时执行的默认命令。一个 Dockerfile 中只能有一条 CMD 生效。 CMD ["flask", "run", "--host=0.0.0.0"] 如果 docker run 命令后面跟了其他命令,CMD 会被覆盖。推荐使用 Exec 格式(JSON 数组)。 ENTRYPOINT 配置容器的入口点。与 CMD 类似,但不容易被覆盖。 ENTRYPOINT ["python", "-m"] 常用于制作“工具型”容器。CMD 的内容会作为参数传递给 ENTRYPOINT。 CMD 与 ENTRYPOINT 的区别 CMD: 设置默认命令,容易被覆盖。适合为容器提供一个默认的、可被用户轻易修改的执行任务。 ENTRYPOINT: 设置主要命令,不易被覆盖。适合将容器制作成一个可执行程序。 CMD 和 ENTRYPOINT 都有两种语法形式 Exec 格式 (推荐): CMD ["executable", "param1", "param2"] Shell 格式: CMD command param1 param2 ...

2025-07-22 | 3203字 | 7分钟

Docker-容器数据卷

当容器被删除(docker rm)后,容器内部所有未持久化的数据都会丢失,如何保存? 多个容器之间默认是相互隔离的,如何共享数据? 在容器的可写层进行频繁的I/O操作性能不如操作宿主机文件系统,如何优化性能? 为了解决这些问题,Docker 提出了数据卷(Volume) 的概念。 ...

2025-07-15 | 1766字 | 4分钟

Docker-镜像原理

为什么容器可以那么快速启动服务? 为什么Docker镜像可以如此轻量? 联合文件系统 因为联合文件系统(UFS) 联合文件系统(Union File System),顾名思义,是一种可以将多个目录(也称为“分支”)的内容联合挂载(union mount)到同一个目录下的文件系统。它能将来自不同位置的文件和目录透明地叠加在一起,形成一个单一的、连贯的视图 ...

2025-07-14 | 2594字 | 6分钟

Docker-常用命令

镜像命令 docker images 查看本地镜像 # 解释 REPOSITORY 镜像的仓库源 TAG 镜像的标签 IMAGE ID 镜像的id CREATED 镜像的创建时间 SIZE 镜像的大小 # 可选项 -a,--all #列出所有镜像 -q,--quiet #只显示镜像的id docker search 搜索镜像 # 可选项,通过搜索过滤 --filter=STARS=3000 #搜索出的镜像就是stars超过3000的 docker pull 下载镜像 ...

2025-07-08 | 2320字 | 5分钟

XXE

概述 XXE(XML External Entity Injection)全称为XML 外部实体注⼊。 XXE 漏洞 是指攻击者构造恶意的 XML 数据,通过注入“外部实体”,从而达到 读取本地文件、发起 SSRF 请求、甚至 远程代码执行(RCE) 的目的。 ...

2025-04-18 | 1256字 | 3分钟

XXE-lab

靶场地址 https://download.vulnhub.com/xxe/XXE.zip VM启动之后就是一个shell登陆界面,这里靶场没给账号密码,也不知道地址,这里用同NAT的虚拟机寻找一下IP地址存活 这里 .140是本机 .148就是我们要的XXE主机 同时发现了80端口 访问一下 发现一个 Apache2 初始界面 扫一下目录发现一个 /robots.txt 找到目录 /xxe /xxe/admin.php ...

2025-04-18 | 388字 | 1分钟

HTTP&HTTPS

HTTP 协议是一种明文传输协议 HTTPS=HTTP+SSL/TLS 非明文传输 SSL/TLS可以对数据进行加密、解密、签名和验证 http包括/1.1、http/2和http/3 HTTP 包括 HTTP/1.1、HTTP/2和HTTP/3 ...

2025-04-11 | 1466字 | 3分钟

JWT

身份验证:修改某个用户密码,管理员。cookie 会话管理:客户端连续不断的和服务器进行请求和响应 控制访问:登陆模块 登陆给定身份 身份去访问后台地址 /admin等 参考 https://forum.butian.net/share/2734 ...

2025-04-11 | 1638字 | 4分钟
1 2  ...  3 下一页

| 总访客数: | 总访问量:
皖ICP备2024067637号  | Copyright © 2024.11-2025 desolatehao