云服务器部署 Docker 实战:为 Lottery 抽奖系统搭建容器环境与 Portainer 面板

发布时间:2026/9/25 10:53:02

云服务器部署 Docker 实战:为 Lottery 抽奖系统搭建容器环境与 Portainer 面板 文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载在 Lottery 抽奖系统基于 DDD 四层架构的分布式抽奖项目上线云服务器的过程中第一步就是完成容器运行环境的部署。本篇以 Part-5 部署环境系列 的开篇章节为主线完整讲解在 CentOS 8.x 云服务器上手动安装 Docker、配置国内镜像加速解决拉取超时、以及安装 Portainer 运维面板的完整过程。读完本文你将掌握一套可复用的云服务器 Docker 初始化方案为后续在容器中部署 Redis、Kafka、MySQL、xxl-job、Nacos 等中间件打下基础。一、部署前的规划运维日志与方案选型在开始动手前先梳理本次部署的几个关键决策这些结论直接决定了后续每一步的操作方式部署目标在云服务器上部署 Docker并安装 Portainer 运维面板及汉化包作为整个 Lottery 抽奖系统容器环境的底座。运行环境服务器系统 CentOS 8.xDocker 版本 20.10.11。系统选型如果你的云服务器已经安装了其他系统可以停机后更换系统镜像即可。购买云服务器时其实还有更省事的选择——直接选择带有 Docker 的镜像也就是云厂商默认帮你安装好了 Docker开箱即用。典型报错预案国内服务器拉取 Docker Hub 镜像时经常会遇到error response from daemon: Get https://registry-1.docker.io/v2/...之类的网络错误需要提前配置镜像加速器详见本文第三节。这一节内容对应原文档运维日志部分是整个 Part-5 部署系列第01节第08节的统一前置步骤后续所有中间件部署都建立在本文搭建好的 Docker 环境之上。二、手动安装 Docker从内核检查到容器引擎1. 认识 DockerDocker 是一个开源的应用容器引擎它让开发者可以把应用以及依赖包打包到一个可移植的镜像中然后发布到任何流行的 Linux 或 Windows 操作系统的机器上实现虚拟化。容器完全使用沙箱机制相互之间不会有任何接口。对于 Lottery 项目而言Docker 的价值在于MySQL、Redis、Kafka、xxl-job、Nacos 等一整套中间件都可以以标准镜像的方式统一部署、统一启停、统一迁移避免了在服务器上逐个安装软件带来的环境冲突和版本混乱问题。2. 检查系统的内核版本安装 Docker 前先确认服务器系统内核满足要求。通过 SSH 登录云服务器后执行[rootCodeGuide ~]# uname -r 4.18.0-80.11.2.el8_0.x86_64uname -r用于查看系统内核版本输出中的x86_64表示 64 位系统。如果是 32 位系统是无法安装 Docker 的这一点需要在选购云服务器或重装系统时确认清楚。3. 手动安装与一键脚本安装本文档重点介绍手动安装方式通过 Docker 官方安装源安装 Docker 引擎。如果你的服务器是 CentOS 8.x可依次执行系统软件包更新、安装 yum-utils 并配置 Docker 官方仓库后安装 docker-ce、docker-ce-cli、containerd.io随后启动并设置开机自启# 更新软件包索引 sudo yum check-update # 安装依赖工具 sudo yum install -y yum-utils # 添加 Docker 官方软件源 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装 Docker 引擎 sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动 Docker 并设置开机自启 sudo systemctl start docker sudo systemctl enable docker安装完成后可通过docker version查看客户端与服务端版本信息确认 Docker 服务正常对应 Docker 20.10.11 及更高版本均可。另一种更省心的方式一键脚本安装。仓库中的 Docker 环境配置一键安装 文档提供了run_install_docker_local.sh一键部署脚本将脚本上传到服务器并授权后执行即可[rootxiaofuge ~]# chmod x run_install_docker_local.sh [rootxiaofuge ~]# ./run_install_docker_local.sh该脚本会自动检查install_docker.sh是否存在、自动请求 root 权限如果检测到已经安装过 Docker还会提示是否卸载重装。安装完成后脚本会询问是否安装 Portainer 容器管理界面其访问地址为http://服务器IP:9000这与本文第四节手动安装 Portainer 的目标一致。4. 常见安装问题权限问题执行脚本报Permission denied时用ls -la *.sh检查执行权限缺失则重新执行chmod x授权服务未启动通过sudo systemctl status docker检查 Docker 服务状态未启动时执行sudo systemctl start docker启动守护进程连接失败确认当前用户是否在docker用户组中可sudo usermod -aG docker 用户名加入后重新登录会话。三、配置国内镜像加速解决registry-1.docker.io拉取超时国内云服务器直连 Docker Hubregistry-1.docker.io时经常出现error response from daemon: Get https://registry-1.docker.io/v2/...的报错本质是网络链路访问 Docker Hub 镜像仓库不稳定或超时。解决方案是在 Docker 守护进程配置中加入国内镜像加速器。1. 编写 daemon.json 配置在服务器上创建/编辑 Docker 守护进程配置文件/etc/docker/daemon.json写入如下完整配置{ builder: { gc: { defaultKeepStorage: 20GB, enabled: true } }, experimental: false, features: { buildkit: true }, registry-mirrors: [ https://0dj0t5fb.mirror.aliyuncs.com, https://docker.mirrors.ustc.edu.cn, https://6kx4zyno.mirror.aliyuncs.com, https://registry.docker-cn.com ] }2. 配置项解读registry-mirrors核心配置项以数组形式声明多个镜像加速地址。Docker 拉取镜像时会依次尝试这些加速源任何一个可用都能大幅提升拉取速度。上面四个地址分别来自阿里云个人版镜像加速、中科大镜像源、阿里云备用加速源和 Docker 官方中国镜像源。注意阿里云镜像加速地址中的专属前缀如0dj0t5fb通常需要登录阿里云容器镜像服务控制台获取个人专属加速地址其他公共源可直接使用。builder.gcBuildKit 构建缓存垃圾回收配置enabled: true开启自动回收defaultKeepStorage: 20GB表示保留最近 20GB 构建缓存避免磁盘被镜像构建缓存占满。features.buildkit开启 BuildKit 构建引擎特性新版 Docker 默认启用提供更高效的镜像构建能力。experimental关闭实验性功能开关保持默认稳定行为。3. 生效与验证修改配置后需要重启 Docker 服务使配置生效sudo systemctl daemon-reload sudo systemctl restart docker验证方式有两种# 方式一查看当前生效的镜像加速器 docker info | grep -A 10 Registry Mirrors # 方式二拉取一个小镜像验证加速效果 docker pull hello-world如果docker info中能看到配置的镜像加速地址且拉取镜像不再报registry-1.docker.io连接错误说明镜像加速配置已生效。注意不同云厂商、不同地域的网络环境差异较大若某个加速源失效可在registry-mirrors列表中增删地址后再次重启 Docker 验证。四、安装 Portainer 运维面板图形化管理容器Docker 命令行操作对初学者并不友好Portainer 作为一款轻量级容器管理面板可以在浏览器中以图形化方式管理镜像、容器、网络和卷。这与仓库 Docker 管理面板Portainer 文档介绍的内容一致也是 Lottery 部署系列后续章节如 第02节部署环境 Redis中查看容器运行状态时反复使用到的工具。1. 拉取 Portainer 镜像[rootCodeGuide portainer]# docker pull portainer/portainer国内服务器如果拉取失败可使用代理镜像docker pull registry.cn-hangzhou.aliyuncs.com/xfg-studio/portainer:latest。2. 安装并启动[rootCodeGuide]# docker run -d --restartalways --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer命令参数说明-d后台运行容器--restartalways容器异常退出或服务器重启后自动拉起保证面板常驻--name portainer指定容器名称-p 9000:9000将容器内 9000 端口映射到宿主机 9000 端口-v /var/run/docker.sock:/var/run/docker.sock把宿主机的 Docker Socket 挂载进容器Portainer 通过它与 Docker 守护进程通信从而接管容器管理能力。注意如果是阿里云等云服务器部分环境下需先执行docker volume create portainer_data创建数据卷再执行上面的 run 命令。3. 访问与初始化浏览器访问http://服务器公网IP:9000首次登录时设置管理员用户名和密码随后在向导中选择管理本地的 Docker 环境Local即可看到容器、镜像、网络的概览面板。后续章节部署 Redis、Kafka、MySQL 后都可以直接在 Portainer 容器列表中查看各中间件的运行状态、日志与端口映射。4. Portainer 汉化原文档指出Portainer 汉化包已随 Lottery 项目资源目录doc/assets/Portainer-CN提供。将汉化包中的public资源替换到 Portainer 容器对应目录后重启容器即可将管理面板界面汉化为中文降低运维操作门槛。五、验证部署结果完成上述步骤后通过以下命令做一次整体验收# 查看 Docker 版本信息客户端 服务端 docker version # 查看运行中的容器应能看到 portainer docker ps # 查看 Docker 服务运行状态 sudo systemctl status dockerdocker ps中能看到portainer容器处于Up状态且浏览器能正常打开 Portainer 面板说明云服务器上的 Docker 环境已经就绪。六、与 Lottery 部署系列的衔接Docker 环境搭建完成后Lottery 抽奖系统的云端部署之路才刚起步。在 Part-5 部署环境系列 中后续章节会依次在 Docker 容器中部署Redis缓存与抽奖库存预扣减需自定义redis.conf配置远程访问与密码Kafka解耦抽奖发货流程配套 ZookeeperMySQL抽奖活动、策略等核心业务数据存储xxl-job活动状态扫描与发货补偿定时任务Nacos替换 Dubbo 直连/广播模式的注册中心Elasticsearch、Kibana 与 canal日志检索与数据同步。这些中间件的部署方式均为docker pull拉取镜像 docker run启动容器完全复用本文搭建的 Docker 与镜像加速环境并可通过 Portainer 面板统一观测。整套流程与仓库 Lottery 抽奖系统介绍 中其他所需环境mysql/kafka/zk/redis/xxl-job的运维实践一脉相承让抽奖系统真正从本地开发走向云端运行。赞分享文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载相关推荐SCAIL-2模型怎么装进ComfyUI3步完成14B扩散模型部署SCAIL 2模型怎么装进ComfyUI3步完成14B扩散模型部署 模型文件明明下载好了ComfyUI里却怎么都找不到它的入口——这是很多人部署SCAILCompose Multiplatform 桌面分发打包工具对比内置 jlink/jpackage 任务与第三方方案的深度剖析Compose Multiplatform 桌面分发打包工具对比内置 jlink/jpackage 任务与第三方方案的深度剖析 本文基于仓库中 packagi文档教程后端Lottery 分布式抽奖系统用简单工厂搭建发奖领域服务Lottery 分布式抽奖系统用简单工厂搭建发奖领域服务 本文以 Lottery 分布式抽奖系统 Part 2 第 07 节“简单工厂搭建发奖领域”为主线讲文档教程后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/25 11:43:04

智谱唐杰清华开课:大模型全链路实操从数据到部署

1. 这门课到底在教什么:从标题拆解真实意图先把标题拆开看。“智谱唐杰清华开课”,主语是智谱和唐杰,场景是清华的课堂,动作是“开课”。“爆改课程内容”说明这不是照本宣科的老课件,而是把原有课程结构推倒重来。“让…

2026/9/25 11:43:04

DeepSeek MoE架构与长上下文部署实战:从原理到工程踩坑

1. 为什么DeepSeek值得单独拎出来讲第一次把DeepSeek的权重文件拖到本地跑起来的时候,我盯着显存占用曲线看了很久。同样参数规模的稠密模型,显存早就爆了,而它还能留出余量给长上下文。这个反差让我意识到,MoE加长上下文这套组合…

2026/9/25 11:43:04

OpenCode多模型接入:DeepSeek与Muse Spark性价比验证

近期的 AI 编码工具社区里,经常能看到这样的标题:“无限额度?超越 DeepSeek 的性能和性价比!Muse Spark 上线 opencode,gpt5.6sol 半价!”。先说结论:这类说法里有真实的工具趋势,也…

2026/9/25 11:43:04

每日更新ArXiv CV论文:自动化抓取、过滤与推送实战

1. 这个每日更新项目到底在做什么每天早上八点半,我习惯性地打开终端,先跑一遍当天的ArXiv CV板块抓取脚本,把新挂出来的论文标题、摘要、作者和PDF链接拉下来,筛掉那些明显灌水的,再把真正有意思的十几篇整理成一份清…

2026/9/25 11:43:04

钢板表面缺陷检测数据集:划伤/孔洞/焊缝三类YOLO-ready资源

简介:本资源是一份面向工业视觉检测领域的钢板表面缺陷数据集,专为缺陷检测与目标检测算法研发、模型训练及课程实验设计,适用于计算机视觉初学者与工程实践者。数据集融合铝型材与德国DAGM两大公开数据集,聚焦划伤、孔洞、焊缝三…

2026/9/24 20:24:47

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:02:35

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:02:35

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑