打造最小化docker容器镜像

 本文章主要记录博主近几年的使用, 去除知识冗余 以最简单直接方式是记录如何打造最小化 docker 容器镜像以 提高构建速度 以及 容器优化 ,本次实验我们使用典型的 PHP镜像 为实验目标其他类型类似可以参考。概述 打造最小化docker容器镜像的几个步骤尽可能选择 alpine tag 类型镜像减少构建层数清理无用缓存数据分阶段构建alpine 镜像 如果是为了保持镜像最小化建议使用 alpine 镜像 本身 alpine 系统大小只有 5M 所有基于 alpine 系统构建的镜像要比基于其他系统镜像要小的多### 一、核心差异对比维度AlpineUbuntu/DebianCentOS镜像体积≈5 MBUbuntu: ≈72-188 MB Debian: ≈47-125 MB≈200-230 MB包管理器apk(轻量高效)apt(功能全面)yum(企业级支持)C库musl libc(轻量)glibc(兼容性强)glibc安全性默认最小化安装,攻击面小依赖较多,需手动精简企业级安全策略启动速度极快(资源消耗低)中等较慢减少构建层数在构建 dockerfile 是我们尽可能...

PHP,Golang,前端,.Net,数据库,Linux,解决方案,其他 2025-07-08 AM 11次 0条

全能激活方法支持几百种软件包括不限IntelliJ IDEA系列等等

CodeKey Run (ckey.run)是一个专注于 JetBrains 系列软件及插件自动激活的网站,支持 Windows、Linux 和 Mac 操作系统,几乎涵盖了 JetBrains 全线产品及主流插件。其核心优势在于“ 一键激活 ”,无需繁琐配置,适合广大开发者和团队快速部署开发环境。支持产品与插件CodeKey Run 支持 JetBrains 全家桶,包括但不限于:IntelliJIDEAPhpStormPyCharmWebStormGoLandRiderDataGripCLionAppCodeDataSpellRustRoverdotMemory使用方法Windows使用 Win + X 按键,选择 WindowsPowerShell(管理员) 运行在命令行中执行以下命令irm ckey.run|iex程序会全自动激活Linux打开终端,输入并执行wget --no-check-certificate ckey.run -O ckey.run && bash ckey.runMac打开终端,输入并执行curl -L -o ckey.run cke...

PHP,Golang,Linux,解决方案,资源分享 2025-06-18 PM 203次 0条

使用FrankenPHP部署php网站程序

 使用 FrankenPHP 代替 nginx 和 php-fpm 部署 php程序网站程序 本次我们使用国内框架 ThinkPHP 作为部署目标,其他框架类似。FrankenPHP FrankenPHP 建立在 Caddy Web 服务器之上的现代 PHP 应用程序服务器,用 Go 编写。FrankenPHP 特性可伸缩 与 PHP 8.2+、大多数 PHP 扩展和所有 Caddy 模块兼容。唯一服务 设计简洁明了:只需要一个服务,只需要一个二进制文件!FrankenPHP 不需要 PHP-FPM,它使用为 Go web 服务器特别定制的自己的 SAPI。易于部署 作为Docker 镜像的云原生应用交付。兼容 Kubernetes 和所有现代云平台。也可以将您的 PHP 应用程序打包为独立的、自执行的静态二进制文件。Worker 模式 一次启动您的应用程序并保持其在内存中!它准备在几毫秒内处理传入请求。103 Early Hints 103 Early Hints 是 web 平台的一个全新特性,可以通过提前 30% 的时间加载网站。FrankenPHP 是唯一支持提前提示的 ...

PHP,Golang,解决方案 2025-05-15 PM 800次 0条

整理分享早期自研中小型企业级开发系统架构

 本文主要整理分享早期部分 脱敏后 设计的 中小型企业级系统开发架构图 。架构对比 本次对比采用 1H2G1M ECS 与 1H1G RDS 本地测试网络延迟为 18ms ~ 19ms 进行测试,周期为 6个月 以实际普通商城项目为对比实例名称自研架构原生TP原生Laravel其他第三方知名框架(2~3个)开发效率5 day ~ 8 day20 day ~ 31 day21.5 day ~ 29 day17 day ~ 25 dayBUG 发生率1% ~ 15%70% ~ 100%65% ~ 100%%49 ~ 78%平均MS22ms ~ 25ms27ms ~ 45ms29ms ~ 43ms35ms ~ 62ms扩展性100%25%26%53%可维护率100%13%15%49% 以上测试用例均做过简单专业的程序优化以及系统优化,测试数据可能有上下浮动仅作参考。

Linux,解决方案 2025-04-17 AM 15次 0条

Docker Compose 命令全解

本文主要记录分享 Docker Compose 命令相关解释方便日志快速查阅服务管理启动服务docker-compose up说明:启动所有服务,并在前台运行。常用参数:-d:以后台模式运行。-f:指定docker-compose文件。--build:启动前重新构建镜像。--force-recreate:强制重新创建容器。示例:docker-compose -f xxxx.yml up -d --build停止服务docker-compose down说明:停止并移除所有服务、网络和卷。常用参数:--volumes:同时删除卷。--rmi all:删除所有镜像。示例:docker-compose down --volumes重启服务docker-compose restart说明:重启所有服务。示例:docker-compose restart web查看服务状态docker-compose ps说明:列出所有服务的状态。示例:docker-compose ps日志管理查看日志docker-compose logs说明:查看所有服务的日志。常用参数:-f:实时跟踪日志输出。--t...

解决方案,其他 2025-03-26 AM 431次 0条

Docker Compose 配置文件全解

docker-compose.ymlservices: web: # 定义 Web 服务 image: nginx:latest # 使用 Nginx 镜像 container_name: my_web # 自定义容器名称 ports: - "80:80" # 映射主机端口到容器端口 volumes: - ./html:/usr/share/nginx/html # 挂载主机目录到容器 environment: # 设置环境变量 - NGINX_HOST=example.com networks: - my_network # 连接到自定义网络 depends_on: # 定义依赖关系 - db restart: always # 设置重启策略 logging: # 配置日志 driver: json-file options: max-size: "10m"...

解决方案 2025-03-26 AM 408次 0条

docker镜像加速

 本文主要记录 docker 使用过程中遇到的网络问题主要涉及镜像拉取慢,容器打包或者容器内访问网络资源超时等问题解决镜像加速主要解决 docker 拉取第三方镜像速度慢,拉取失败问题。"registry-mirrors": [ "https://dockerpull.pw", "https://dockerhub.icu", "https://hub.rat.dev", "https://register.librax.org", "https://docker-0.unsee.tech", "https://docker-cf.registry.cyou" ],解决网络资源超时主要解决 docker 容器打包或容器内访问部分远程网络资源超时等问题。"dns": [ "8.8.8.8", "8.8.4.4" ]完整配置{ "registry-mirrors": [ "https://dockerpull.pw", "https://dockerhub.icu", "https://hub.rat.d...

解决方案 2025-03-11 PM 787次 0条

指定PHP版本编译第三方扩展

下载你需要的扩展包-官网找wget https://pecl.php.net/get/phalcon-4.1.3.tgz解压拓展包tar xf phalcon-4.1.3.tgz进入该目录,注意名字cd phalcon-4.1.3phpize,74则为PHP7.4,示例PHP8.1,该地方填81/www/server/php/74/bin/phpize生成配置(少数扩展可能还需要指定其它依赖库的目录,请根据官方说明修改编译参数):./configure --with-php-config=/www/server/php/74/bin/php-config 编译并重新安装PHPsudo make && make install

PHP,解决方案 2025-02-18 AM 845次 0条

city-picker城市选择器调整使用后台动态城市数据

city-picker.js 城市选择器默认情况下使用的是本地文件 city-picker.data.js 内的城市数据对于维护个管理不太友好下面我们通过调整代码来实现渲染动态后台城市数据。city-picker.data.js(function (factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as anonymous module. define('ChineseDistricts', [], factory); } else { // Browser globals. factory(); } })(function () { var ChineseDistricts={}; $.ajax({ async: false, url: 'ajax/cityPickerData', success: functi...

PHP,前端,解决方案 2024-10-26 PM 1005次 0条

Ubuntu乌班图命令行扩容教程

 本文主要记录在虚拟机中扩容硬盘后系统中Ubuntu系统中不显示不生效问题,假设现在已经在虚拟机中扩容了 250G 硬盘,并且已经重启。查看硬盘容量命令sudo lsblk回显信息NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 250G 0 disk ├─sda1 8:1 0 1G 0 part /boot/efi ├─sda2 8:2 0 2G 0 part /boot └─sda3 8:3 0 196.9G 0 part └─ubuntu--vg-ubuntu--lv 252:0 0 196.9G 0 lvm / sr0 11:0 1 1024M 0 rom 可以看到 sda 已经是...

Linux,解决方案 2024-07-19 PM 1302次 0条