1、安装 MySQL 服务
# 下载MySQL镜像并启动
[root@jumpserver ~]# docker run --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jumpserver -e MYSQL_USER=jumpserver -e MYSQL_PASSWORD=123456 -d -p 3306:3306 mysql:5.7.38
# 查看MySQL
[root@jumpserver ~]# docker exec -it mysql bash
bash-4.2# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.38 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show create database jumpserver;
+------------+-----------------------------------------------------------------------+
| Database | Create Database |
+------------+-----------------------------------------------------------------------+
| jumpserver | CREATE DATABASE `jumpserver` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+------------+-----------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> show create database jumpserver;
+------------+-----------------------------------------------------------------------+
| Database | Create Database |
+------------+-----------------------------------------------------------------------+
| jumpserver | CREATE DATABASE `jumpserver` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+------------+-----------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select user,host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| jumpserver | % |
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
5 rows in set (0.00 sec)
mysql> exit
Bye
[root@jumpserver ~]# docker stop mysql
# 在宿主机准备MySQL配置文件
# 准备相关目录
[root@jumpserver ~]# mkdir -p /etc/mysql/mysql.conf.d/
[root@jumpserver ~]# mkdir -p /etc/mysql/conf.d/
# 生成服务器配置文件,指定字符集
[root@jumpserver ~]# tee /etc/mysql/mysql.conf.d/mysqld.cnf <<EOF
> [mysqld]
> pid-file= /var/run/mysqld/mysqld.pid
> socket= /var/run/mysqld/mysqld.sock
> datadir= /var/lib/mysql
> symbolic-links=0
> character-set-server=utf8
> EOF
[mysqld]
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
datadir= /var/lib/mysql
symbolic-links=0
character-set-server=utf8
[root@jumpserver ~]# tee /etc/mysql/conf.d/mysql.cnf <<EOF
> [mysql]
> default-character-set=utf8
> EOF
[mysql]
default-character-set=utf8
[root@jumpserver ~]# tree /etc/mysql/
/etc/mysql/
├── conf.d
│ └── mysql.cnf
└── mysql.conf.d
└── mysqld.cnf
# 启动 MySQL 容器
docker run -d -p 3306:3306 --name mysql --restart always \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=jumpserver \
-e MYSQL_USER=jumpserver \
-e MYSQL_PASSWORD=123456 \
-v /data/mysql:/var/lib/mysql \
-v /etc/mysql/mysql.conf.d/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v /etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf mysql:5.7.38
[root@jumpserver ~]# docker exec -it mysql sh
sh-4.2# mysql -p123456 -e 'show variables like "character%"'
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
sh-4.2# mysql -p123456 -e 'show variables like "collation%"'
mysql: [Warning] Using a password on the command line interface can be insecure.
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
sh-4.2# cat /var/lib/mysql/jumpserver/db.opt
default-character-set=utf8
default-collation=utf8_general_ci
sh-4.2# cat /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
datadir= /var/lib/mysql
symbolic-links=0
character-set-server=utf8
sh-4.2# cat /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8
sh-4.2# mysql -p123456 -e 'select user,host from mysql.user'
mysql: [Warning] Using a password on the command line interface can be insecure.
+---------------+-----------+
| user | host |
+---------------+-----------+
| jumpserver | % |
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
sh-4.2# mysql -p123456 -e 'select user,host from mysql.user'
mysql: [Warning] Using a password on the command line interface can be insecure.
+---------------+-----------+
| user | host |
+---------------+-----------+
| jumpserver | % |
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
sh-4.2# ls /var/lib/mysql/ -l
total 188484
-rw-r----- 1 mysql mysql 56 Nov 28 12:22 auto.cnf
-rw------- 1 mysql mysql 1680 Nov 28 12:22 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 Nov 28 12:22 ca.pem
-rw-r--r-- 1 mysql mysql 1112 Nov 28 12:22 client-cert.pem
-rw------- 1 mysql mysql 1676 Nov 28 12:22 client-key.pem
-rw-r----- 1 mysql mysql 1318 Nov 28 12:22 ib_buffer_pool
-rw-r----- 1 mysql mysql 50331648 Nov 28 12:22 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Nov 28 12:22 ib_logfile1
-rw-r----- 1 mysql mysql 79691776 Nov 28 12:22 ibdata1
-rw-r----- 1 mysql mysql 12582912 Nov 28 12:22 ibtmp1
drwxr-x--- 2 mysql mysql 20 Nov 28 12:22 jumpserver
drwxr-x--- 2 mysql mysql 4096 Nov 28 12:22 mysql
lrwxrwxrwx 1 mysql mysql 27 Nov 28 12:22 mysql.sock -> /var/run/mysqld/mysqld.sock
drwxr-x--- 2 mysql mysql 8192 Nov 28 12:22 performance_schema
-rw------- 1 mysql mysql 1676 Nov 28 12:22 private_key.pem
-rw-r--r-- 1 mysql mysql 452 Nov 28 12:22 public_key.pem
-rw-r--r-- 1 mysql mysql 1112 Nov 28 12:22 server-cert.pem
-rw------- 1 mysql mysql 1680 Nov 28 12:22 server-key.pem
drwxr-x--- 2 mysql mysql 8192 Nov 28 12:22 sys
[root@jumpserver ~]# ls /data/mysql/
auto.cnf client-cert.pem ibdata1 ibtmp1 mysql.sock public_key.pem sys
ca-key.pem client-key.pem ib_logfile0 jumpserver performance_schema server-cert.pem
ca.pem ib_buffer_pool ib_logfile1 mysql private_key.pem server-key.pem
2、安装 Redis 服务
[root@jumpserver ~]# docker run -d -p 6379:6379 --name redis --restart always redis:6.2.7
3、部署 JumpServer
# 生成 key 和 token
#!/bin/bash
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=$SECRET_KEY;
else
echo SECRET_KEY=$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=$BOOTSTRAP_TOKEN;
else
echo BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN;
fi
[root@jumpserver ~]# bash key.sh
SECRET_KEY=K3M0N7SUdSAP9koynU1smvlvMUKZXRzEKBCj1dioa73guVxKFj
BOOTSTRAP_TOKEN=EDsurdnmx5s8ajRx
docker run --name jms_all -d \
-v /opt/jumpserver/core/data:/opt/jumpserver/data \
-v /opt/jumpserver/koko/data:/opt/koko/data \
-v /opt/jumpserver/lion/data:/opt/lion/data \
-p 80:80 \
-p 2222:2222 \
-e SECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW \
-e BOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q \
-e LOG_LEVEL=ERROR \
-e DB_HOST=192.168.1.15 \
-e DB_PORT=3306 \
-e DB_USER=jumpserver \
-e DB_PASSWORD=123456 \
-e DB_NAME=jumpserver \
-e REDIS_HOST=192.168.1.15 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD='' \
--privileged=true \
jumpserver/jms_all:v2.15.3
# 查看日志
[root@jumpserver ~]# docker logs -f jms_all
......
Starting supervisor: supervisord.
Jumpserver ALL v2.15.3
官网 http://www.jumpserver.org
文档 http://docs.jumpserver.org
进入容器命令 docker exec -it jms_all /bin/bash
[root@jumpserver ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:3306 *:*
LISTEN 0 128 *:6379 *:*
LISTEN 0 128 *:2222 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 [::]:3306 [::]:*
LISTEN 0 128 [::]:6379 [::]:*
LISTEN 0 128 [::]:2222 [::]:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:80 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
登录 JumpServer 默认用户: admin 密码: admin
![图片[1]-部署JumpServer-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2022/11/image-231.png)
![图片[2]-部署JumpServer-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2022/11/image-232.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END