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-compose如何自定义network

    docker-compose如何自定义network

    文章介绍了在DockerCompose中如何通过networks配置定义和使用桥接网络,包括如何在docker-compose.yml文件中指定使用bridge网络,服务间的通信方式以及如何为服务分配特定的IP地址
    2025-01-01
  • kali安装docker及搭建漏洞环境的详细教程

    kali安装docker及搭建漏洞环境的详细教程

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,本文重点给大家介绍kali安装docker及搭建漏洞环境的过程,感兴趣的朋友一起看看吧
    2022-05-05
  • 使用 docker 部署 APISIX的详细介绍

    使用 docker 部署 APISIX的详细介绍

    这篇文章主要介绍了使用 docker 部署 APISIX的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • docker如何进入启动容器查看内部目录结构

    docker如何进入启动容器查看内部目录结构

    这篇文章主要介绍了docker如何进入启动容器查看内部目录结构问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Docker实践之python应用容器化

    Docker实践之python应用容器化

    这篇文章主要介绍了Docker实践之python应用容器化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Docker打包SpringBoot镜像的实现方式

    Docker打包SpringBoot镜像的实现方式

    docker打包springboot镜像,并不是简单的将springboot项目的jar包上传容器里,然后启动,这个操作很简单,但是如果我每次要查看容器中的日志就需要每次都进入容器内部进行查看,这就非常麻烦了,所以本文介绍了Docker打包SpringBoot镜像的实现方式,需要的朋友可以参考下
    2024-03-03
  • docker快速入门教程

    docker快速入门教程

    这篇文章主要为大家详细介绍了docker快速入门教程,知识结构简单,对docker有一个初步的认识,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Docker部署Nuxt.js项目的实现

    Docker部署Nuxt.js项目的实现

    这篇文章主要介绍了Docker部署Nuxt.js项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Docker安装基础镜像服务的步骤

    Docker安装基础镜像服务的步骤

    外部机器不能直接访问容器,网是不通的,但可以访问宿主机,只要将容器的端口与宿主机进行映射后,访问宿主机的端口就相当于访问了容器的端口,本文介绍Docker如何安装基础镜像服务,感兴趣的朋友一起看看吧
    2024-01-01
  • Docker Engine配置的实现步骤

    Docker Engine配置的实现步骤

    Docker配置文件位于/etc/docker/daemon.json,下面就来介绍了Docker Engine配置方法,涵盖配置文件位置、常用参数,如存储路径、调试模式、网络设置、日志驱动等,感兴趣的可以了解一下
    2025-07-07

最新评论