ubuntu1804 一键安装docker-ce脚本
#!/bin/bash
#更改终端颜色
cat >/etc/profile.d/env.sh <<EOF
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35;40m\]\u\[\033[00;00;40m\]@\[\033[01;35;40m\]\h\[\033[00;31;40m\]:\[\033[00;00;40m\]\w \[\033[01;32;40m\]\$ \[\033[01;36;40m\]'
EOF
. /etc/profile.d/env.sh
#删除之前残留的docker
sudo apt-get remove docker docker-engine docker.io containerd runc
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce=18.06.3~ce~3-0~ubuntu
#配置阿里云镜像加速 这里的地址写自己的阿里云地址 具体查看https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["填写自己的地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
接下来使用docker安装部署jumpserver
官方环境要求:
硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)
操作系统: Linux 发行版 x86_64
Python = 3.6.x
Mysql Server ≥ 5.6
Mariadb Server ≥ 5.5.56
数据库编码要求 uft8
Redis
下面操作的是jumpserver和mysql redis用的都是一台机器 宿主机ip 192.168.38.109
生产环境中为了减小压力 数据库和redis可以是一台机器 jumpserver是一台机器
docker pull mysql:5.7.28
docker run -it --rm -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.28 bash
设置数据库密码为123456 前台执行 进入终端
发现容器里的客户端和服务器端的配置文件是下面的路径
/etc/mysql/conf.d/mysql.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf 这个配置文件可以拷贝一份官方的 或者在 宿主机安装一个mysql 把配置文件修改下映射到容器中
宿主机创建文件 在配置文件加一行代码 指定字符集为utf8 然后-v映射到容器
mkdir /etc/mysql/mysql.conf.d/ -p
mkdir /etc/mysql/conf.d/ -p
mkdir /data/mysql -p 新建数据库的数据目录 到时候映射到容器数据库的数据目录 数据保存在宿主机,实现数据与容器分离,当容器运行异常时也可以在启动一个新的容器直接使用宿主机的数据,从而保证业务的正常运行。
vim /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8
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
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
后台启动容器数据库
docker run -it -d -p 3306:3306 -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="magedu.com" mysql:5.7.28
验证容器里的数据库有没有改成utf8
apt install mysql-client -y
mysql -uroot -pmagedu.com -h192.168.38.109
mysql> show variables like "%character%";show variables like "%collation%";
创建jumpserver数据库
mysql> create database jumpserver default charset 'utf8';
mysql> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'magedu.com';
启动数据库授权密码不能为纯数字,否则会报错
部署redis服务
apt install redis-server -y
vim /etc/redis/redis.conf
bind 0.0.0.0 改成监听所有地址
# requirepass foobared 这行注释启用 把密码改成123456
requirepass 123456
systemctl restart redis
客户端验证
redis-cli
127.0.0.1:6379> auth 123456
127.0.0.1:6379> info
部署jumpserver
docker pull jumpserver/jms_all
生成加密秘钥
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
mkdir /opt/jumpserver -p
建jumpserver容器 要和之前的信息一一对应
docker run --name jms_all -d \
-v /opt/jumpserver:/opt/jumpserver/data/media \
-p 80:80 \
-p 2222:2222 \
-e SECRET_KEY=DESjYosaPeBbstIaT2W9uK8YdVbhFc4qhmzz3IFSFVMZtLacj6 \
-e BOOTSTRAP_TOKEN=wjr1qQ3slL8z4K0R \
-e DB_HOST=192.168.38.109 \
-e DB_PORT=3306 \
-e DB_USER=jumpserver \
-e DB_PASSWORD=magedu.com \
-e DB_NAME=jumpserver \
-e REDIS_HOST=192.168.38.109 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD=123456 \
jumpserver/jms_all:latest
win访问登录
默认账号admin 密码admin