导读:本期聚焦于李修然创作的《如何用Docker安装JumpServer堡垒机?详细步骤与常见问题一文讲清》,敬请观看详情。想在测试环境快速部署一套 JumpServer 堡垒机,却被源码安装的依赖和配置折腾得不轻?借助官方仓库的 Docker Compose 编排文件,可以在一台 4GB 内存的 Linux 服务器上几分钟内把 Web、Core、Koko 等组件全部拉起来。本文从 Docker 环境检查、项目克隆、密钥生成、容器启动,到前端初始化和资产纳管,完整走一遍流程。还会说明端口冲突、镜像拉取缓慢、数据持久化、忘记账号密码以及 HTTPS 反向代理等高频问题的处理方法。命令和配置均以 Docker Compose v2 为例,新手照着操作基本可以一次成功,避免在环境配置上反复消耗时间。

JumpServer 是开源堡垒机中热度较高的一个方案,它把资产纳管、权限分配、会话代理和操作审计集中到一个平台里。部署 JumpServer 有好几种方式,使用 Docker Compose 是其中对新手最友好的一种,不需要手动解决 Python 依赖、前端构建和数据库初始化问题。下面我会以一台干净的 Linux 服务器为对象,从环境检查开始,完整说明部署过程,并给出容易踩坑的环节和对应处理方法。

如何用Docker安装JumpServer堡垒机?详细步骤与常见问题一文讲清

一、部署前需要准备哪些环境

在开始安装之前,先确认服务器满足最低运行条件。JumpServer 由多个容器组成,包括 Web 服务、Core 核心服务、Koko 和 Lion 等组件,因此内存建议不低于 4GB,磁盘剩余空间最好在 40GB 以上。操作系统可以是主流的 Linux 发行版,Ubuntu 20.04、Debian 11、Rocky Linux 9 或 CentOS 7.9 都可以,本文命令以 Ubuntu/Debian 系为主。

Docker 版本需要 20.10 以上,Compose 需要使用 v2 语法。可以先执行下面的命令检查当前环境:

docker --version
docker compose version

如果提示命令不存在,Ubuntu/Debian 可以直接安装 docker.io 和 docker-compose-plugin,CentOS/RHEL 则使用 dnf 或 yum 安装 Docker CE 后确认 docker compose 子命令可用。安装完成后建议执行 docker info 确认没有权限问题,普通用户需要加入 docker 组或者使用 sudo。

端口方面,JumpServer 默认会占用 80 端口作为 Web 入口,8080 端口作为 Core API,2222 端口用于 SSH 资产连接。服务器的安全组或 firewalld 需要放行这些端口,尤其是 80 和 2222。如果 80 端口已经被 Nginx 或其他服务占用,后面可以通过修改 .env 中的 HTTP_PORT 调整,或者在启动前直接改 docker-compose.yml 里的端口映射。

二、获取部署文件并启动容器

JumpServer 官方在 GitHub 仓库中提供了完整的 Docker Compose 编排文件,我们不需要自己编写复杂的 YAML。先使用 git 把仓库克隆到服务器上,加上 --depth=1 可以只取最近一次提交,显著减少下载体积。

git clone --depth=1 https://github.com/jumpserver/jumpserver.git
cd jumpserver

克隆完成后,目录里会包含 docker-compose.yml 和 .env.example。其中 .env 用于存放敏感配置,例如 SECRET_KEY 和 BOOTSTRAP_TOKEN。这两个值不能使用示例默认值,必须自行生成随机字符。下面的命令会先复制环境变量模板,再用系统随机数替换关键字段:

cp .env.example .env
sed -i "s/SECRET_KEY=/SECRET_KEY=$(cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50)/g" .env
sed -i "s/BOOTSTRAP_TOKEN=/BOOTSTRAP_TOKEN=$(cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16)/g" .env

执行后可以用 grep -E '^(SECRET_KEY|BOOTSTRAP_TOKEN)' .env 查看这两个字段是否已经变成随机值。确认无误后,运行下面的命令启动全部容器。第一次启动会从镜像仓库拉取多个镜像,耗时取决于网络质量,如果速度较慢可以跳到第四节查看镜像加速方案。

docker compose up -d
docker compose ps

docker compose ps 输出中应看到 core、web、koko、lion、mysql、redis 等服务的状态为 Up。如果某个服务处于 Restarting 或 Exited 状态,可以用 docker compose logs 服务名 查看具体报错,常见原因包括端口冲突和数据库文件目录权限不足。

三、首次登录与资产纳管

容器全部启动后,打开浏览器访问 http://服务器IP,如果修改过 HTTP_PORT,则访问对应端口。默认管理员账号是 admin,初始密码也是 admin。第一次登录时系统会强制要求修改密码,这里建议设置成至少 12 位的强密码,因为 admin 同时拥有平台最高权限。

登录后先不要急着添加资产,先理解 JumpServer 的授权模型。平台中几个核心概念是:用户、资产、管理用户、系统用户和授权规则。用户是登录堡垒机的账号;资产是需要纳管的服务器;管理用户是资产上的高权限账号,用于推送系统用户和获取资产信息;系统用户是实际登录资产时使用的账号;授权规则把用户和资产绑定起来。这个模型理解清楚后,添加服务器的流程就很清晰。

以纳管一台 Linux 服务器为例,先在资产管理中创建该资产,填写 IP、协议和端口;然后添加管理用户,通常是 root 或具备 sudo 权限的账号;接着创建系统用户,比如一个普通权限的 SSH 账号;最后在授权规则中把目标用户、资产和系统用户关联起来。完成后可以让用户通过 Web 终端连接资产,或者使用 JumpServer 提供的 SSH 代理地址进行访问。

如果希望使用域名访问并启用 HTTPS,可以将 JumpServer 的 Web 服务放在 Nginx 反向代理之后。Nginx 负责监听 443 端口并转发到本机 80 或 8080,证书申请和续期也可以由 Nginx 统一处理。反向代理配置不复杂,关键是 proxy_set_header 要保留原始 Host 和客户端 IP,否则 JumpServer 中记录的登录来源可能全是 127.0.0.1。

四、常见问题与注意事项

第一类问题是镜像拉取缓慢。Docker Hub 在国内访问不稳定,可以通过配置镜像加速器缓解。编辑 /etc/docker/daemon.json,加入下面的内容后重启 Docker:

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

重启完成后执行 systemctl restart docker,再重新运行 docker compose up -d。如果服务器之前已经拉取了部分镜像,可以使用 docker compose pull 补齐。

第二类问题是端口冲突。如果 80 端口被占用,web 容器可能启动失败或无法访问。先用 ss -tulnp | grep ':80' 查看占用进程,确认是其他服务后,修改 .env 中的 HTTP_PORT 为 8081 这类空闲端口,再执行 docker compose down 后重新 docker compose up -d。注意不要只改宿主机映射,还要让 Core 的外网访问地址同步调整。

第三类是数据持久化。JumpServer 的核心数据保存在数据库里,容器删除并不等于数据删除,但不要在生产环境随意使用 docker compose down -v,因为 -v 会连数据卷一起删除。日常备份可以直接导出数据库,命令如下:

docker compose exec mysql mysqldump -uroot -p jumpserver > backup.sql

备份文件建议定期复制到其他服务器,避免单点磁盘故障导致数据不可恢复。升级 JumpServer 前也必须先备份数据库和 .env 文件,升级操作需要参考官方文档的版本迁移说明,不要直接改镜像标签后重启。

最后是安全注意事项。默认管理员密码必须修改;.env 文件权限建议设置为 600,避免其他系统用户读取;数据库和 Redis 端口不要暴露到公网;2222 端口如果对公网开放,应配合安全组或防火墙限制来源 IP。只要做好这些基础加固,Docker 版 JumpServer 完全可以作为中小团队的正式堡垒机使用。

Docker安装JumpServerJumpServer堡垒机Docker Compose修改时间:2026-09-29 10:33:33

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/0929/63364.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。