首页/新闻资讯/正文详情

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

发布时间:2026/9/25 10:52:05 来源:云帆数科 栏目:资讯中心
云服务器部署 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),仅供参考

相关推荐

ChatGPT-Shortcut(AiShort)账户体系详解:Google 登录、免密链接登录与账户数据管理的源码级实现
ChatGPT-Shortcut(AiShort)账户体系详解:Google 登录、免密链接登录与账户数据管理的源码级实现

AI 应用提示工程人工智能前端 【免费下载链接】ChatGPT-Shortcut Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词&… · 2026/9/25 10:51:53

昇腾Atlas 300V推理卡部署YOLOv5/YOLOv8全流程实战指南
昇腾Atlas 300V推理卡部署YOLOv5/YOLOv8全流程实战指南

说句实话,我接触昇腾这条线挺早的,但真正把Atlas 300V拿来当主力推理卡用,还是这一两年的事。之前帮一个视觉项目做边缘侧目标检测选型,客户点名要国产化方案,手头正好有几张Atlas 300V Pro 24G,就硬着头皮… · 2026/9/25 10:51:47

DeskcommCRM落地实操:从零搭建客户管理与销售跟进系统
DeskcommCRM落地实操:从零搭建客户管理与销售跟进系统

这几年做销售管理和客户运营,我最大的感触是:真正拖累团队业绩的,往往不是产品不够好,而是客户线索全散落在销售个人的微信聊天记录、Excel表格甚至纸质笔记本里。人一多,撞单、漏跟、离职带走客户这些事就会轮番上演。… · 2026/9/25 10:51:40

CodeQL 1.19 框架与库内置支持清单解读:各语言覆盖范围与如何扩展分析
CodeQL 1.19 框架与库内置支持清单解读:各语言覆盖范围与如何扩展分析

静态分析SAST应用安全漏洞扫描代码质量 【免费下载链接】codeql CodeQL: the libraries and queries that power security researchers around the world, as well as code scanning in GitHub Advanced Security 项目地址: https://gitcode.com/gh_mirrors/co/code… · 2026/9/25 11:24:39

TypeDoc 国际化机制详解:`--lang` 选项、本地化文件编写与插件字符串翻译
TypeDoc 国际化机制详解:`--lang` 选项、本地化文件编写与插件字符串翻译

开发工具文档 【免费下载链接】typedoc Documentation generator for TypeScript projects. 项目地址: https://gitcode.com/gh_mirrors/ty/typedoc 点击查看 免费下载 TypeDoc 自 0.26 版本起,为其控制台输出和生成的 HTML/JSON 文档提供了完整的国际化… · 2026/9/25 11:24:33

Atlas 300V 24G部署YOLO全指南:从硬件到推理的完整实践
Atlas 300V 24G部署YOLO全指南:从硬件到推理的完整实践

朋友前几天问我:“Atlas 300V 24G算不算运算加速卡?”这个问题乍一听特别基础,但真等他把卡插上服务器、开始跑YOLO的时候,才发现后面连着驱动、CANN、模型转换、推理框架一整条软件栈的坑。我刚好在项目里完整走了一遍“Atlas 30… · 2026/9/25 11:24:26

Atlas 300V 24G部署YOLO实战:从模型转换到NPU推理调优
Atlas 300V 24G部署YOLO实战:从模型转换到NPU推理调优

如果你最近在折腾深度学习推理,尤其是想把 YOLO 这类目标检测模型从 GPU 服务器搬到 AI 加速卡上,那你大概率会反复看到一个名字:atlas。社交平台上隔三差五就有人问“atlas 300v 24g 是运算加速卡吗”,答案很简单——是&#xff… · 2026/9/25 11:24:20

Atlas 300V 24G上部署YOLOv5:从CANN转换到pyACL推理全攻略
Atlas 300V 24G上部署YOLOv5:从CANN转换到pyACL推理全攻略

最近一直在折腾一台装了 Atlas 300V 24G 的服务器,连续几个晚上在 C 和 Python 之间来回横跳,才总算把 YOLOv5 跑通,延迟也压到了能看的水平。身边朋友知道我在搞这个东西之后,问最多的两个问题,跟你在搜索框里敲的几乎… · 2026/9/25 11:24:20

多商户系统开发全流程实战指南 核心架构设计与落地避坑经验分享
多商户系统开发全流程实战指南 核心架构设计与落地避坑经验分享

多商户系统是当前本地生活、电商、家政、外卖等多个领域的主流系统架构,相比单商户系统,它支持多主体入驻、权责分离、资源整合,能够大幅提升平台的运营效率。本文结合外卖、家政、电商、CPS服务等多场景多商户系统的开发实战,从核… · 2026/9/25 11:24:14

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码