该实验有一些问题·!
实验前期准备
准备三台虚拟机,版本:Ubuntu1804
主机名 | IP | 用途 |
---|---|---|
U8-1 | 10.20.0.31 | Redis的MySQL服务器 |
U8-2 | 10.20.0.32 | jumpserver跳转服务器 |
U8-3 | 10.20.0.33 | 实验测试服务器节点1 |
部署 jumpserver 最低配置要求:
硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)
操作系统: Linux 发行版 x86_64 架构
Python = 3.6.x
Mysql Server >= 5.6
Mariadb Server >= 5.5.56
Redis
使用 docker 部署 jumpserver 和 mysql 及 redis ,其中,mysql 和 redis
部署与同一个docker,jumpserver部署于另一台docker主机。
部署mysql
使用docker部署mysql。如果将mysql部署到独立主机,则要求:
外置数据库要求
mysql 版本需要大于等于 5.6
mariadb 版本需要大于等于 5.5.6
数据库编码要求 uft8
1
我为了省事,直接用官方的docker安装脚本
`部署mysql`
[root@U8-1 ~]# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
[root@U8-1 ~]# systemctl start docker
[root@U8-1 ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
8559a31e96f4: Pull complete
d51ce1c2e575: Pull complete
c2344adc4858: Pull complete
fcf3ceff18fc: Pull complete
16da0c38dc5b: Pull complete
b905d1797e97: Pull complete
4b50d1c6b05c: Pull complete
d85174a87144: Pull complete
a4ad33703fa8: Pull complete
f7a5433ce20d: Pull complete
3dcd2a278b4a: Pull complete
Digest: sha256:32f9d9a069f7a735e28fd44ea944d53c61f990ba71460c5c183e610854ca4854
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[root@U8-1 ~]# docker run -it --rm mysql:5.7 /bin/bash
root@1850b06b5a85:/# find / -name my.cnf
/var/lib/dpkg/alternatives/my.cnf
/etc/alternatives/my.cnf
/etc/mysql/my.cnf
root@1850b06b5a85:/# cat /etc/issue
Debian GNU/Linux 10 \n \l
root@1850b06b5a85:/# apt update && apt install vim -y
root@1850b06b5a85:/# exit
exit
将配置文件防到容器外的主机目录
使用 -v /etc/mysql/mysql.conf.d/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf 挂载到容器
[root@U8-1 ~]# mkdir /etc/mysql/mysql.conf.d -p
[root@U8-1 ~]# vim /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
#log-error = /var/log/mysql/error.log
symbolic-links=0
character-set-server=utf8
使用 -v /etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf 挂载到容器
[root@U8-1 ~]# mkdir /etc/mysql/conf.d
[root@U8-1 ~]# vim /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8
数据保存在主机上,实现数据与容器分离,当容器运行异常时也可以在启动
一个新的容器直接使用托管机的数据,从而保证业务的正产运行。
使用 -v /data/mysql:/var/lib/mysql 挂载到容器
[root@U8-1 ~]# mkdir /data/mysql -p
[root@U8-1 ~]# docker run -it -d -p 3306:3306 --name jumpserver-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 \
> -v /data/mysql:/var/lib/mysql \
> -e MYSQL_ROOT_PASSWORD="123456" mysql:5.7
90402336c39c9528dd18158da068fec743a864824f02172c7829c42ce497dbbe
[root@U8-1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90402336c39c mysql:5.7 "docker-entrypoint.s…" 29 seconds ago Up 27 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp jumpserver-mysql
测试连接
[root@U