全部永久免费开源、商用无限制、信创适配、兼容 OCI/Docker 镜像,分单机容器引擎(替代 docker/podman 命令行)、K8s 容器运行时、可视化 / 平台工具三类整理: 一、单机容器引擎(本地开发 / 服务器直接替代 docker)
一、核心原理:Docker 分层缓存机制 Docker 构建基于联合文件分层,每层只读缓存,构建时从上到下校验文件哈希: 命令无文件变更:直接复用缓存,秒级构建 命令内文件发生改动:当前层及之后所有层全部重建 优化核心思路:把变动少的指令放前面,频繁变更的代码 / 文件放最后
一、基础概念 Dockerfile:纯文本脚本,定义镜像的构建步骤、环境、依赖、启动命令 镜像 (image):Dockerfile 构建出的只读模板 容器 (container):镜像运行后的实例 构建命令:docker build 读取 Dockerfile 生成镜像
Dockerfile 是构建 Docker 镜像的文本文件,由指令(大写关键字)+ 参数组成,指令自上而下顺序执行,每行一条指令,注释以 # 开头。 一、核心基础指令(必掌握) 1. FROM(镜像基础,第一条有效指令) 指定构建镜像的父基础镜
一、核心前置认知 1. 镜像标签(Tag)本质 Docker 镜像由镜像 ID(sha256 哈希) 唯一标识,Tag 只是给镜像哈希起的别名;一个镜像可绑定多个 Tag,一个 Tag 同一仓库只能绑定一个镜像,直接覆盖旧镜像,这是版本混乱的根源。 2. 版本管理核心目标
场景说明 我的服务器环境说明:Debian11,Docker 数据目录 /var/lib/docker,磁盘已满;目标分区 /tzdata(已提前挂载,空间充足)。 ⚠️重要前提:Docker 不能不停机直接迁移。运行状态拷贝文件一定会造成容器文件损坏、数据库数据丢失。只能:在线先预同步 → 短时停
一、核心原因分类 docker 二进制不在 sudo 用户的 PATH 环境变量里(最常见) docker 仅安装了 containerd,没装 docker-ce 客户端 安装路径特殊,/usr/local/bin 未被 sudo 继承 仅 root 能执行,普通用户 sudo 找不到 安装不完整
分三大部分说明: Dockerfile 编写(把本地业务代码打包进镜像) 构建镜像、推送到私服完整命令流程 私服认证、常见踩坑(私有仓库 http/https、内网地址) 一、通用 Dockerfile 模板(分 Java/SpringBoot、Vue 前端、Go 三种主流业务)
一、Dockerfile(构建镜像脚本) 用于定义镜像分层构建规则,每条指令生成一层镜像。 基础模板(Java SpringBoot 示例) # 基础镜像 FROM openjdk:17-jdk-slim # 作者信息 MAINTAINER admin # 设置工作目录 WORKDIR /app #
一、卸载旧版本(如有) sudo apt remove docker docker-engine docker.io containerd runc sudo apt autoremove
一、原理说明 Harbor 默认 HTTPS,若仅启用 HTTP,Docker 客户端默认拒绝连接,会报 x509: certificate signed by unknown authority,需要在 Docker 守护进程配置 insecure-registries 信任该 HTTP 仓库地址