Docker實(shí)現(xiàn)從零開始搭建SOLO個(gè)人博客的方法步驟
一、環(huán)境準(zhǔn)備
要想在公網(wǎng)訪問你的博客,首先你需要一臺(tái)云服務(wù)器,也就是租用各大云廠商的服務(wù)器,像我就是花68塊買了一年青云的1核2G的服務(wù)器,你現(xiàn)在看到的博客就是在這臺(tái)服務(wù)器上,最好也購買一個(gè)專屬的域名。一年十幾就夠了。
二、安裝Docker

因?yàn)槲覀兪怯肈ocker部署solo博客。所以我們首先要安裝docker,關(guān)于docker的介紹請(qǐng)各位同學(xué)自行百度。
配置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
啟動(dòng)
systemctl enable docker --now
配置加速
這里額外添加了docker的生產(chǎn)環(huán)境核心配置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
測(cè)試:
輸入 docker version 看到如下顯示就安裝成功了

三、安裝mysql主從數(shù)據(jù)庫
我們前面已經(jīng)安裝了docker,這里我們直接用命令一鍵部署mysql數(shù)據(jù)庫(筆者部署的主從的mysql)
3.1、mysql環(huán)境準(zhǔn)備
mkdir -p /data/master/data/mysql-master && mkdir -p /data/master/data/mysql-slave ##數(shù)據(jù)目錄 mkdir -p /data/master/master && mkdir -p /data/master/slave ##配置目錄
往配置目錄分別放兩個(gè)配置文件,master.cnf slave.cnf 內(nèi)容分別如下:
[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、啟動(dòng)mysql主庫從庫
注意:這里的密碼設(shè)置為123456,將mysql的默認(rèn)數(shù)據(jù)存放目錄映射給了我的/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 ## 查看兩個(gè)mysql數(shù)據(jù)庫的狀態(tài)是否都是UP docker exec -it mysql-master /bin/bash mysql -u root -p123456 ## 登陸mysql show variables like 'log_bin'; ##查看bin-log的開啟狀態(tài),如果是ON代表開啟成功,我們主從同步是一定要開binlog show master status; ## 查詢出的file名字與 Position要記一下,后面配置從庫會(huì)用到 ## 創(chuàng)建用戶并賦權(quán) CREATE USER 'bakup'@'%' IDENTIFIED BY '123456'; GRANT ALL ON *.* TO 'bakup'@'%'; create database solo;
3.4、登陸mysql從庫
docker exec -it mysql-slave /bin/bash ## 進(jìn)入從庫 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; ## 啟動(dòng)從庫備份 show slave status\G; ##查看狀態(tài)
看到兩個(gè)YES大功告成!

3.5、主從參數(shù)說明
- master_host:主庫的IP地址/服務(wù)器地址
- master_port:主庫的端口
- master_user:主庫開放出來的用戶
- master_password:用戶的密碼
- master_log_file:主庫的日志文件,二進(jìn)制日志文件,進(jìn)行同步的。就是上面show master status 里面的File
- master_log_pos:上面show master status 里面的Position
四、搭建solo博客
前面的準(zhǔn)備工作都做完后,就可以開始安裝solo了
docker 啟動(dòng)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
當(dāng)出現(xiàn)Solo has not been initialized, please open your browser to init Solo,代表solo安裝成功,但是未進(jìn)行初始化,可以看到我們前面啟動(dòng)的端口是8080,我們用域名加端口感覺很low,所以我們用nginx去轉(zhuǎn)發(fā)一下。
五、Nginx實(shí)現(xiàn)反向代理solo博客
關(guān)于nginx的安裝,在這里就不在贅述,同學(xué)們可以去百度一哈
上配置文件:
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;
}
}
可以看到我們定義了一個(gè)backend的地址指向我們本機(jī)的8080端口,nginx監(jiān)聽80端口,當(dāng)我們?nèi)ピL問80端口時(shí),就會(huì)都轉(zhuǎn)發(fā)到8080端口,進(jìn)而實(shí)現(xiàn)端口的轉(zhuǎn)發(fā)!
六、成果展示

到此這篇關(guān)于Docker實(shí)現(xiàn)從零開始搭建SOLO個(gè)人博客的文章就介紹到這了,更多相關(guān)Docker實(shí)現(xiàn)從零開始搭建SOLO個(gè)人博客內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信