Docker实现从零开始搭建SOLO个人博客的方法步骤_docker

本文主要介绍了Docker实现从零开始搭建SOLO个人博客,文中通过示例代码介绍的非常详细,具有一定

Docker实现从零开始搭建SOLO个人博客的方法步骤_docker

本文主要介绍了Docker实现从零开始搭建SOLO个人博客,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

目录

一、环境准备二、安装Docker三、安装mysql主从数据库3.1、mysql环境准备3.2、启动mysql主库从库3.3、登陆mysql主库3.4、登陆mysql从库3.5、主从参数说明四、搭建solo博客五、Nginx实现反向代理solo博客六、成果展示

一、环境准备

要想在公网访问你的博客,首先你需要一台云服务器,也就是租用各大云厂商的服务器,像我就是花68块买了一年青云的1核2G的服务器,你现在看到的博客就是在这台服务器上,最好也购买一个专属的域名。一年十几就够了。

二、安装Docker

因为我们是用Docker部署solo博客。所以我们首先要安装docker,关于docker的介绍请各位同学自行百度。

配置yum源

sudo yum install -y yum-utils
sudo yum-config-manager \\
–add-repo \\
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

启动

systemctl enable docker –now

配置加速

这里额外添加了docker的生产环境核心配置cgroup

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-\’EOF\’
{
\”registry-mirrors\”: [\”https://82m9ar63.mirror.aliyuncs.com\”],
\”exec-opts\”: [\”native.cgroupdriver=systemd\”],
\”log-driver\”: \”json-file\”,
\”log-opts\”: {
\”max-size\”: \”100m\”
},
\”storage-driver\”: \”overlay2\”
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

测试:

输入 docker version 看到如下显示就安装成功了

三、安装mysql主从数据库

我们前面已经安装了docker,这里我们直接用命令一键部署mysql数据库(笔者部署的主从的mysql)

3.1、mysql环境准备

mkdir -p /data/master/data/mysql-master && mkdir -p /data/master/data/mysql-slave ##数据目录
mkdir -p /data/master/master && mkdir -p /data/master/slave ##配置目录

往配置目录分别放两个配置文件,master.cnf slave.cnf 内容分别如下:

[root@website master]# cat master/master.cnf
[mysqld]
log-bin=mysql-bin
binlog_format=row
server-id=1
log-error=/var/log/mysqld.log

[root@website master]# cat slave/slave.cnf
[mysqld]
log-bin=mysql-bin
binlog_format=row
server-id=2
log-error=/var/log/mysqld.log

3.2、启动mysql主库从库

注意:这里的密码设置为123456,将mysql的默认数据存放目录映射给了我的/data/master/data

docker run -itd –name mysql-master -v /data/master/data/mysql-master:/var/lib/mysql -v /data/master/master:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.6
docker run -itd –name mysql-slave -v /data/master/data/mysql-slave:/var/lib/mysql -v /data/master/slave:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3316:3306 mysql:5.6

3.3、登陆mysql主库

docker ps -a ## 查看两个mysql数据库的状态是否都是UP
docker exec -it mysql-master /bin/bash
mysql -u root -p123456 ## 登陆mysql
show variables like \’log_bin\’; ##查看bin-log的开启状态,如果是ON代表开启成功,我们主从同步是一定要开binlog
show master status; ## 查询出的file名字与 Position要记一下,后面配置从库会用到
## 创建用户并赋权
CREATE USER \’bakup\’@\’%\’ IDENTIFIED BY \’123456\’;
GRANT ALL ON *.* TO \’bakup\’@\’%\’;
create database solo;

3.4、登陆mysql从库

docker exec -it mysql-slave /bin/bash ## 进入从库
mysql -u root -p123456 ## 登陆mysql
change master to master_host=\’192.168.1.5\’, master_port=3306,master_user=\’bakup\’,master_password=\’bakup\’, master_log_file=\’mysql-bin.000001\’,master_log_pos=154; ##配置主从连接
start slave; ## 启动从库备份
show slave status\\G; ##查看状态

看到两个YES大功告成!

3.5、主从参数说明

master_host:主库的IP地址/服务器地址
master_port:主库的端口
master_user:主库开放出来的用户
master_password:用户的密码
master_log_file:主库的日志文件,二进制日志文件,进行同步的。就是上面show master status 里面的File
master_log_pos:上面show master status 里面的Position

四、搭建solo博客

前面的准备工作都做完后,就可以开始安装solo了
docker 启动solo

docker run –detach –name solo –env RUNTIME_DB=\”MYSQL\” –env JDBC_USERNAME=\”root\” –env JDBC_PASSWORD=\”123456\” –publish 8080:8080 –link mysql-master:mysql-master –env JDBC_DRIVER=\”com.mysql.cj.jdbc.Driver\” –env JDBC_URL=\”jdbc:mysql://192.168.1.5:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC\” b3log/solo –listen_port=8080 –server_scheme=http –server_host=localhost –server_port=8080

docker logs solo ## 查看容器solo的日志

[INFO ]-[2021-11-12 18:30:32]-[org.b3log.solo.Server:254]: Solo is booting [ver=4.3.1, os=Linux, isDocker=true, inJar=false, luteAvailable=false, pid=1, runtimeDatabase=MYSQL, runtimeMode=PRODUCTION, jdbc.username=root, jdbc.URL=jdbc:mysql://192.168.1.5:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC]
[INFO ]-[2021-11-12 18:30:34]-[org.b3log.solo.service.InitService:177]: It\’s your first time setup Solo, initialize tables in database [MYSQL]
[WARN ]-[2021-11-12 18:30:36]-[org.b3log.solo.service.InitService:150]: Solo has not been initialized, please open your browser to init Solo

当出现Solo has not been initialized, please open your browser to init Solo,代表solo安装成功,但是未进行初始化,可以看到我们前面启动的端口是8080,我们用域名加端口感觉很low,所以我们用nginx去转发一下。

五、Nginx实现反向代理solo博客

关于nginx的安装,在这里就不在赘述,同学们可以去百度一哈
上配置文件:

http {
sendfile on;
include mime.types;
default_type application/octet-stream;
keepalive_timeout 65;
gzip on;
upstream backend {
server localhost:8080;
}
server {
listen 80;
server_name yunxue521.top;
location / {
proxy_pass http://backend$request_uri;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
}

可以看到我们定义了一个backend的地址指向我们本机的8080端口,nginx监听80端口,当我们去访问80端口时,就会都转发到8080端口,进而实现端口的转发!

六、成果展示

到此这篇关于Docker实现从零开始搭建SOLO个人博客的文章就介绍到这了,更多相关Docker实现从零开始搭建SOLO个人博客内容请搜索3399IT网以前的文章或继续浏览下面的相关文章希望大家以后多多支持3399IT网!

本文为网络共享文章,如有侵权请联系邮箱485837881@qq.com

作者: 陈小c

为您推荐

返回顶部