Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。
Jumpserver 使用 Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好。
Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发访问限制。
一、下载镜像安装
mysql:5.7
redis:latest
jms_all:latest
[root@my ~]# docker pull jumpserver/jms_all
[root@my ~]# docker pull mysql:5.7
[root@my ~]# docker pull redis
二、启动容器
启动mysql
[root@my ~]# docker run -d --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=admin123 -p 3306:3306 -v /data/mysql/data:/var/lib/mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
配置数据库
docker exec -it mysql /bin/bash
mysql -u root -padmin123
mysql> create database jumpserver default charset 'utf8mb4';
mysql> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'admin123';
mysql> flush privileges;
mysql> exit;
#exit
启动redis
docker run -d -it --name redis -p 6379:6379 -v /data/redis/data:/data --restart=always --sysctl net.core.somaxconn=1024 redis:4.0.10 --requirepass "123456"
随机生成密钥
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
docker run -d --name jumpserver -h jumpserver --restart=always \
-v /data/jumpserver:/opt/jumpserver/data/media \
-p 80:80 \
-p 2222:2222 \
-e SECRET_KEY=CWL1znY9BnphHHMAW3YjLuSz765J8EaRnYFRl25CYGBqDimwBu \
-e BOOTSTRAP_TOKEN=h4o6qWnQgLyYCDmZ \
-e DB_HOST=192.168.100.20 \
-e DB_PORT=3306 \
-e DB_USER=jumpserver \
-e DB_PASSWORD="admin123" \
-e DB_NAME=jumpserver \
-e REDIS_HOST=192.168.100.20 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD="123456" \
jumpserver/jms_all:latest
三、容器检查
[root@my ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c323e89b6629 jumpserver/jms_all:latest "./entrypoint.sh" 9 minutes ago Up 9 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:2222->2222/tcp jumpserver
521483f8f57c mysql:5.7 "docker-entrypoint.s…" 10 minutes ago Up 10 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
ab98869d229d redis:latest "docker-entrypoint.s…" 20 minutes ago Up 20 minutes 0.0.0.0:6379->6379/tcp redis-jm
四、页面访问
使用192.168.100.20访问,默认账号密码:admin/admin 首次登录会提示修改密码。