docker分布式部署jumpserver实践

 更新时间:2026年03月03日 10:31:48   作者:Y。S。H。  
文章介绍了如何部署分布式JumpServer,包括定义网络和数据持久化、部署数据库、配置Redis密码、生成随机加密秘钥并启动JumpServer容器,作者建议在启动前检查SECRET_KEY是否一致,以确保数据库加密字段的解密

部署分布式jumpserver

1、 定义网络和数据持久化

docker network create --driver=bridge \
--subnet=192.168.20.0/24 --gateway=192.168.20.1 jump-network
#定义私有网络192.168.20.0/24
docker volume create jump_mysql
docker volume create jumpserver
#数据库持久化和jumpserver数据持久化

2、 部署数据库

docker run --name jump-mysql \
--network jump-network --ip 192.168.20.2 \
-v jump_mysql:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_DATABASE="jumpserver" \
-e MYSQL_USER="jumpserver" \
-e MYSQL_PASSWORD="jumpserver" \
-e MYSQL_ROOT_PASSWORD="jumpserver" \
-d mysql:5.7 \
--character-set-server=utf8 \
--collation-server=utf8_unicode_ci

3、部署redis

docker run --name jump-redis \
--network jump-network --ip 192.168.20.3 \
-p 6379:6379 \
-d redis \
--requirepass "111111"

–requirepass “111111”:配置密码

4、部署jumpserver

生成随机加密秘钥

if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi
if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi

记下秘钥,启动jumpserver环境变量使用

环境迁移和更新升级请检查 SECRET_KEY 是否与之前设置一致, 不能随机生成, 否则数据库所有加密的字段均无法解密

启动jumpserver容器

docker run --name jms_all -d \
  --network jump-network --ip 192.168.20.4 \
  -v jumpserver:/opt/jumpserver/data/media \
  -p 80:80 \
  -p 2222:2222 \
  -e SECRET_KEY=xxxxxxxxxxxxxxxxxx \
  -e BOOTSTRAP_TOKEN=xxxxxxx \
  -e DB_HOST=192.168.20.2 \
  -e DB_PORT=3306 \
  -e DB_USER=jumpserver \
  -e DB_PASSWORD=jumpserver \
  -e DB_NAME=jumpserver \
  -e REDIS_HOST=192.168.20.3 \
  -e REDIS_PORT=6379 \
  -e REDIS_PASSWORD=111111\
  jumpserver/jms_all

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker容器中没有vi/ps等命令问题

    Docker容器中没有vi/ps等命令问题

    这篇文章主要介绍了Docker容器中没有vi/ps等命令问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • docker实现搭建emqx服务

    docker实现搭建emqx服务

    这篇文章主要介绍了docker实现搭建emqx服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • docker容器跨服务器的迁移的方法

    docker容器跨服务器的迁移的方法

    本篇文章主要介绍了docker容器跨服务器的迁移的方法,docker的备份方式有export和save两种,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • Docker前后端项目部署完整步骤记录

    Docker前后端项目部署完整步骤记录

    最近的开发中也确实体会到了这一好处,因为我们项目涉及给客户私有化部署及演示等,使用 Docker 部署,在镜像导出迁移方面很方便,这篇文章主要给大家介绍了关于Docker前后端项目部署的相关资料,需要的朋友可以参考下
    2024-04-04
  • docker配置镜像Docker pull时报错:https://registry-1.docker.io/v2/问题

    docker配置镜像Docker pull时报错:https://registry-1.docker.io/v

    Docker拉镜像报错的原因可能是网络问题、认证问题、注册中心URL不正确或注册中心服务不可用,解决方法包括重载和重启Docker服务
    2026-01-01
  • 使用Docker Compose部署Dify的方法

    使用Docker Compose部署Dify的方法

    这篇文章主要介绍了使用Docker Compose部署Dify的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-05-05
  • 使用Dockerfile实现容器内部服务随容器自启动的方法

    使用Dockerfile实现容器内部服务随容器自启动的方法

    这篇文章主要介绍了使用Dockerfile实现容器内部服务随容器自启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • docker创建mongodb数据库容器的方法

    docker创建mongodb数据库容器的方法

    本文将通过docker创建一个mongodb数据库容器,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • 连接docker里面的mysql失败解决方法

    连接docker里面的mysql失败解决方法

    这篇文章主要介绍了连接docker里面的mysql失败解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker使用storage出现Exit导致文件无法上传服务器的问题及解决方案

    docker使用storage出现Exit导致文件无法上传服务器的问题及解决方案

    这篇文章主要介绍了docker使用storage出现Exit导致文件无法上传服务器解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06

最新评论