使用 Docker 搭建 JumpServer 站点的详细指南

简介

JumpServer 是一款开源的堡垒主机管理系统,它通过集中管理 SSH 和 RDP 的访问,帮助企业实现安全合规。在这篇文章中,我们将详细介绍如何使用 Docker 搭建 JumpServer 站点,并给出代码示例,最后通过序列图与流程图帮助理解整个过程。

准备工作

1. 安装 Docker 和 Docker Compose

在开始之前,你需要确保安装了 Docker 和 Docker Compose。可以根据不同操作系统的安装指南进行安装。

  • 安装 Docker
# 在 Ubuntu 上安装 Docker
sudo apt-get update
sudo apt-get install -y docker.io
  • 安装 Docker Compose
# 在 Ubuntu 上安装 Docker Compose
sudo apt-get install -y docker-compose

2. 创建项目目录

创建一个新的目录来存放 JumpServer 的配置文件和项目结构。

mkdir jumpserver
cd jumpserver

创建 Docker Compose 文件

在项目目录中,创建一个名为 docker-compose.yml 的文件,该文件将用于定义 JumpServer 的服务。

version: '3'

services:
  jumpserver:
    image: jumpserver/jumpserver:latest
    container_name: jumpserver
    environment:
      - JUMP_SERVER_HOST=0.0.0.0
      - JUMP_SERVER_PORT=8080
      - REDIS_URL=redis://redis:6379/0
      - DB_TYPE=mysql
      - DB_HOST=mysql
      - DB_PORT=3306
      - DB_NAME=jumpserver
      - DB_USER=root
      - DB_PASS=root
    ports:
      - "8080:8080"
    depends_on:
      - redis
      - mysql

  redis:
    image: redis:alpine
    container_name: redis

  mysql:
    image: mysql:5.7
    container_name: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=jumpserver
    ports:
      - "3306:3306"

3. 启动服务

在项目目录下,运行以下命令启动 JumpServer、Redis 和 MySQL 服务。

docker-compose up -d

这将后台运行所有的服务。

4. 初始化数据库

在第一次启动后,你需要初始化数据库。可以通过以下命令进入 JumpServer 的容器。

docker exec -it jumpserver /bin/bash

然后执行下面的命令进行数据库迁移:

python3 manage.py migrate

路由功能展示

以下的序列图展示了用户如何通过 JumpServer 访问目标主机的流程。

sequenceDiagram
    participant User
    participant JumpServer
    participant TargetHost

    User->>JumpServer: 登录
    JumpServer-->>User: 验证用户身份
    User->>JumpServer: 请求访问 TargetHost
    JumpServer->>TargetHost: 建立连接
    TargetHost-->>JumpServer: 确认连接
    JumpServer-->>User: 连接成功

访问 JumpServer

服务启动成功后,可以通过浏览器访问 JumpServer,输入以下地址:

http://你的服务器IP:8080

使用用户名 admin 和密码 admin 登录(第一次登录后建议及时更改)。

流程图

下面的流程图可以帮助理解整个搭建过程。

flowchart TD
    A[创建项目目录] --> B[编写 docker-compose.yml 文件]
    B --> C[启动服务]
    C --> D[初始化数据库]
    D --> E[通过浏览器访问 JumpServer]

常见问题

1. 为什么数据库连接失败?

确保已正确配置 docker-compose.yml 文件中的数据库信息,并且数据库服务已经启动。

2. 如何扩展 JumpServer 功能?

你可以通过 Docker Compose 的方式添加更多的服务,比如监控服务或日志收集服务。

结论

通过 Docker 搭建 JumpServer 提供了一种简单而有效的方式来管理远程主机的访问。这不仅减少了安装和配置的复杂性,还能方便地进行版本管理和扩展。希望这篇文章对你有所帮助,让你能够顺利地搭建和使用 JumpServer。

如果在实施过程中有任何问题,欢迎提出,我们将乐于解答。