MySQL 源码构建 Docker 镜像(基于 ARM 64 架构)
博主在推进公司MySQL适配ARM 64架构的过程中,发现Docker Hub官方仅提供MySQL 8.0以上版本的ARM 64镜像。为避免因版本变更带来的研发成本,博主决定自行构建MySQL 5.7.40版本的ARM 64镜像。整个过程包括:首先使用dfimage工具获取原始Dockerfile;由于官方yum源未提供对应版本的ARM 64 rpm文件,博主通过下载并编译源码生成rpm包;接着修改Dockerfile中的安装逻辑以适应新生成的rpm包;最后成功构建了所需的Docker镜像。此过程中还涉及对my.cnf配置文件及docker-entrypoint.sh脚本的调整,以确保兼容性和功能性。
RocketMQ 源码构建 Docker 镜像(基于 ARM 64 架构)
本文介绍了博主为RocketMQ 4.9.4版本构建ARM 64架构Docker镜像的全过程。首先,通过dfimage工具获取官方Dockerfile,并针对编译好的jar包在执行Topic初始化脚本时出现超时问题进行了源码修改与重新编译。接着,在ARM环境下安装maven等依赖,下载并编译RocketMQ源码生成新的jar包。最后,基于调整后的Dockerfile及自定义脚本成功构建了适用于ARM 64架构的RocketMQ Docker镜像。整个过程包括获取Dockerfile、编译源码以及构建镜像三个主要步骤,详细记录了每一步的操作命令和注意事项。
📂专栏
未读
Anisble自动化集群架构部署
本文详细介绍了如何使用Ansible自动化部署一个集群架构,包括服务器地址规划、基础环境准备、网络初始化、以及多种服务(如NFS、MySQL、Redis、Nginx、PHP、Haproxy、Keepalived、LVS、Route和DNS)的配置。文章首先定义了各服务器的角色和地址,然后通过Ansible的playbook文件对这些服务器进行批量配置,如关闭防火墙、创建统一用户、添加YUM仓库、安装基础软件包等。接着,对于每个具体的服务,文章都提供了详细的步骤来创建角色、编写配置文件、添加变量,并测试应用情况。最后,文章还展示了如何将WordPress业务接入到这个集群中,并通过Haproxy实现负载均衡。整个过程强调了自动化运维的重要性,提高了部署效率与一致性。
此摘要简化了原文内容,但保留了核心步骤和技术要点,适合快速了解整个自动化部署流程。
Docker Compose 相关
本文介绍了Docker Compose及其相关概念。Docker Compose是Docker官方的容器编排工具,通过YML文件定义和管理多容器应用,简化了部署流程。文章首先解释了Docker Compose的作用及YML文件的基本概念,接着详细说明了Docker Compose的安装步骤以及一系列常用命令选项如`--verbose`, `--log-level`, `-d`等,并提供了具体的命令示例。最后,文章给出了一份YML配置文件的例子,并对其关键部分进行了逐条解析,包括服务定义、环境变量设置、端口映射、依赖关系配置等,帮助读者更好地理解和使用Docker Compose进行容器化应用的管理和部署。
Dockerfile 相关
本文介绍了Docker镜像构建的相关概念、常用指令及高级技术。首先,定义了Dockerfile和构建上下文的概念,并说明了如何通过.dockerignore文件排除不必要的文件。接着,详细解释了FROM、RUN、CMD、ENTRYPOINT等11个常用Dockerfile指令的作用与用法。此外,文章还讨论了多阶段构建技术,用于优化镜像大小和构建过程。对于希望从现有镜像反向解析Dockerfile的需求,推荐了几种工具如dfimage、whaler以及dive。最后,文章探讨了构建支持多种架构(如AMD64和ARM64)的镜像方法,包括使用docker manifest命令和docker-buildx工具两种途径。这些内容为开发者提供了全面的指导,帮助他们更高效地创建和管理Docker镜像。
Docker 配置文件详解
docker.service和docker.socket是Docker在Linux上的服务单元文件,定义了Docker守护进程的管理和通信方式。daemon.json用于自定义Docker守护程序的行为。
Docker Registry 详解
本文介绍了如何创建和管理本地Docker镜像仓库。首先,通过使用DockerHub上的Registry官方镜像并运行容器来创建本地镜像仓库,同时挂载本地数据目录。接着,文章列举了几种常用的API请求方法,包括查看repository列表、镜像tag列表以及获取特定tag的digest等。此外,还详细说明了清理镜像仓库的方法,强调了需要在配置文件中启用删除功能,并给出了具体的步骤,包括获取digest信息、删除指定镜像以及执行垃圾回收操作。最后提醒用户,在删除镜像时必须使用digest而非tag。