注:
确保 yum 包更新到最新, CentOS是基于linux建立的操作系统,因为linux与docker版本的兼容性问题,不是最新的到后面可能出现兼容性问题导致docker或者mysql等应用因为兼容性问题无法启动.
#初始化
yum clean all
#更新
yum update
(使用的finalshell - SSH工具,自动翻译为中文了,英文请自行对照)
输入y同意后等待更新成功即可
1.安装jdk
#查看服务器是否有jdk,没有java指令,需要自己安装jdk
java -version
#安装jdk 1.8
yum install java-1.8.0-openjdk.x86_64`
输入y同意后开始安装
#安装完毕后输入,显示jdk版本信息,即安装成功.
java -version
2.安装docker
#安装docker
yum install docker
#安装完毕后
#docker开机自启
systemctl enable docker
#运行docker
systemctl start docker
#输入 docker version 校验是否安装并启动成功
docker version
#有client和service两部分表示docker安装启动都成功了
3.docker内安装mysql
#docker下拉mysql镜像
docker pull mysql:5.7.16
下载完成后:
#查看拉下来的镜像
docker images
#准备文件夹
mkdir -p /opt/mysql/data /opt/mysql/logs /opt/mysql/conf
- data目录将映射为mysql容器配置的数据文件存放路径
- logs目录将映射为mysql容器的日志目录
- conf目录里的配置文件将映射为mysql容器的配置文件
#运行镜像创建容器
docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.16
出现报错了,发现应该是linux与docker版本的兼容性问题,所以一定保证保证自己的yum是最新,可以尝试更新yum包后尝试再次启动,为避免此类情况,建议一开始就更新。
命令说明:
* -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
* -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
* -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
* -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
* -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
#查看正在运行的容器
docker ps #-a 加上后可以查看所有容器
出现此画面就是已经启动。
#进入容器mysql
docker exec -it mysql bash
#进入数据库 p后面跟你的密码
mysql -uroot -p123456
#创建数据库(数据库名:solo;字符集utf8mb4;排序规则utf8mb4_general_ci)
create database solo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#出现Query OK, 1 row affected (0.00 sec)表示成功
#退出数据库
exit
#退出容器
exit
4.docker内安装Solo
#获取最新镜像
docker pull b3log/solo
#拉取完毕后查看镜像
docker images
#启动solo
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="123456" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
b3log/solo --listen_port=8080 --server_scheme=http --server_host=www.wanzizoo.com
- detach: 这个选项告诉 Docker 在启动后将程序与控制台分离,使其进入“后台”运行。
- name solo: solo是容器的名字,也可以改成自己喜欢的名字如mysolo,这个无所谓
- RUNTIME_DB=“MYSQL”: 指明我们此处使用的数据库为MYSQL,如果使用,H2 Database,将MYSQL改成org.h2.Driver即可
- JDBC_USERNAME=“root”: 指明MYSQL数据连接时使用的用户名,默认都是root
- JDBC_PASSWORD=“123456”: 指明MYSQL数据库连接时用户密码,使用时注意将123456替换成自己在上一步所设置的密码
- env JDBC_DRIVER=“com.mysql.cj.jdbc.Driver”:数据库连接驱动包,如果使用,H2 Database,将om.mysql.cj.jdbc.Driver改成H2即可
- server_host=www.wanzizoo.com: 个人域名,如果没有可设置为自己的服务器ip
- env JDBC_URL=“……”数据库jdbc地址,ip根据自己更换
- listen_port=8080:指明solo监听的端口此处使用的是8080,如果不想配置nginx此处可以换成80
命令执行完成之后没有报错的话,通过docker ps查看当前当前容器列表中是否有名字叫solo的容器,如果有证明启动成功了,没有solo,可输入 docker logs solo查看日志排查,启动成功后可以通过个人域名/ip+:端口来进行访问,类似http://www.wanzizoo.com:8080,如果不想配置nginx可以将8080换成80,可以直接通过域名/ip来直接进行访问,类似wanzi的博客–https://wanzizoo.com。不出意外会出现如下界面(如果出现不能访问的情况考虑是否是防火墙配置有问题,查看是否开放8080或者80端口):
5.Nginx安装ssl配置(可选)
vcjmhg—— https://blog.csdn.net/Startapi/article/details/102230007?utm_source=app
这里已经讲的很详细了,可以看看。
部分内容参考:
vcjmhg—— https://blog.csdn.net/Startapi/article/details/102230007?utm_source=app
Solo官方文档—-https://hacpai.com/article/1492881378588
aing22392——https://blog.csdn.net/aing22392/article/details/101502012?utm_source=app