CenterOS 部署 Solo

本贴最后更新于 238 天前,其中的信息可能已经物是人非

一、环境准备

确保 yum 包更新到最新, CentOS 是基于 linux 建立的操作系统,因为 linux 与 docker 版本的兼容性问题,不是最新的到后面可能出现兼容性问题导致 docker 或者 mysql 等应用因为兼容性问题无法启动.

#初始化
yum clean all
#更新
yum update

1.安装 jdk

#查看服务器是否有jdk,没有java指令,需要自己安装jdk
java -version

在这里插入图片描述

#安装完毕后输入,显示jdk版本信息,即安装成功.
java -version

2.安装 docker

#安装docker
yum install docker
#安装完毕后
#docker开机自启
systemctl enable docker
#运行docker
systemctl start docker  
1234567

在这里插入图片描述

#输入 docker version 校验是否安装并启动成功
docker version
#有client和service两部分表示docker安装启动都成功了
123

在这里插入图片描述

3.docker 内安装 mysql

#docker下拉mysql镜像
docker pull mysql:5.7.16
12

下载完成后:

#查看拉下来的镜像
docker images
12

在这里插入图片描述

#准备文件夹
mkdir -p /opt/mysql/data /opt/mysql/logs /opt/mysql/conf
12
  • 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
12

在这里插入图片描述
出现报错了,发现应该是 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 用户的密码。
123456
#查看正在运行的容器
docker ps   #-a  加上后可以查看所有容器
12

在这里插入图片描述

出现此画面就是已经启动。

#进入容器mysql
docker exec -it mysql bash
#进入数据库 p后面跟你的密码
mysql -uroot -p123456

12345

在这里插入图片描述

#创建数据库(数据库名: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
1234567

在这里插入图片描述

二.docker 内安装 Solo

#获取最新镜像
docker pull b3log/solo
#拉取完毕后查看镜像
docker images 
1234

在这里插入图片描述

#启动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=blog.sevenn.top
12345678
  • 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://blog.sevenn.top,如果不想配置 nginx 可以将 8080 换成 80,可以直接通过域名/ip 来直接进行访问。不出意外会出现如下界面(如果出现不能访问的情况考虑是否是防火墙配置有问题,查看是否开放 8080 或者 80 端口):

image.png

三、用 Nginx 做端口转发(反向代理)

(未完待续)

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1425 引用 • 10043 回帖 • 470 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    476 引用 • 899 回帖
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖 • 33 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...