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个人博客内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 将博客迁移至docker纪实

    由于五一前的这周工作需求不是很多,便趁着这个机会将博客迁移到了docker中,虽说网上docker相关文章有很多,第一次实践的我还是遇到了一些小问题,现在便来总结一下. 在这里我要推荐的是docker_practice(本站地址),有中英文版本,很多细节知识都有讲到,非常适合入门学习.其次是docker hub,可以其上面寻找自己需要的一些镜像,这样可以有助于自己比较方便地写出自己想要的dockerfile. 我认为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的服务器,你现在看到的博客就是在这台服务器上,最好也购买一个专属的域名.一年十几就够

  • Flask入门教程实例:搭建一个静态博客

    现在流行的静态博客/网站生成工具有很多,比如 Jekyll, Pelican, Middleman, Hyde 等等,StaticGen 列出了目前最流行的一些静态网站生成工具. 我们的内部工具由 Python/Flask/MongoDB 搭建,现在需要加上文档功能,写作格式是 Markdown,不想把文档放到数据库里,也不想再弄一套静态博客工具来管理文档,于是找到了 Flask-FlatPages 这个好用的 Flask 模块.熟悉 Flask 的同学花几分钟的时间就可以用搭建一个简单博客,加

  • 利用laravel搭建一个迷你博客实战教程

    本文主要给大家介绍的是关于利用laravel搭建一个迷你博客的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 一.设计与思路 在开始写第一行代码之前,一定要尽量从头到尾将我们要做的产品设计好,避免写完又改,多写不必要的代码. 需求分析:我们的迷你博客应该至少包含:新增/编辑/查看/删除文章,以及文章列表展示功能. 数据库分析:基于这个功能,我们只需要一张 Articles 数据表来存放文章即可. 页面结构分析:应该使用模板继承建立一张基础模板包含:头部/文章列表/底部信

  • python实现批量下载新浪博客的方法

    本文实例讲述了python实现批量下载新浪博客的方法.分享给大家供大家参考.具体实现方法如下: # coding=utf-8 import urllib2 import sys, os import re import string from BeautifulSoup import BeautifulSoup def encode(s): return s.decode('utf-8').encode(sys.stdout.encoding, 'ignore') def getHTML(url

  • Linux搭建C++开发调试环境的方法步骤

    安装g++ Linux编译C++程序必须安装g++编译器.这里使用yum方式安装.首先切换到root账号,su - root 然后输入密码. 执行yum install gcc-c++(注意不是yum install g++),报错. 报错是因为yum需要配置正确的服务器地址,服务器是提供yum安装包的,也被称作yum源.配置yum源的配置文件在/etc/yum.repos.d/目录下,可以看到系统自带了两个文件. cat 文件名称,会打印文件全部内容.可以看到两个文件要么没配置,要么地址是无法

  • IDEA使用Docker插件远程部署项目到云服务器的方法步骤

    1. 打开2375端口 编辑docker.service vim /lib/systemd/system/docker.service 在 ExecStart 后添加配置 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 重启docker网络和docker systemctl daemon-reload systemctl restart-docker Centos7 开放端口 firewall-cmd --zone=public --add

  • 手把手搭建Java共享网盘的方法步骤

    项目介绍 在线共享网盘采用jsp+servlet搭建项目结构实现共享网盘,项目分为管理员,普通用户和付费用户三种角色,根据不同角色控制不同权限,实现不同用户对个人文件文件,所有文件,共享文件的增删改查操作. 项目适用人群 正在做毕设的学生,或者需要项目实战练习的Java学习者 开发环境: jdk 8 intellij idea tomcat 8.5.40 mysql 5.7 所用技术: jsp+servlet js+ajax layUi jdbc直连 项目访问地址 http://localhos

  • docker安装Elasticsearch7.6集群并设置密码的方法步骤

    目录 一些基础配置 关于版本和docker镜像 开始 关于elasticsearch.yml 关于证书elastic-certificates.p12 生成密码 使用密码 忘记密码 Elasticsearch从6.8开始, 允许免费用户使用X-Pack的安全功能, 以前安装es都是裸奔.接下来记录配置安全认证的方法. 为了简化物理安装过程,我们将使用docker安装我们的服务. 一些基础配置 es需要修改linux的一些参数. 设置vm.max_map_count=262144 sudo vim

  • 使用docker compose一键部署WordPress博客的方法

    目录 1.创建wordpress项目目录 2.创建docker-compose.yml配置文件 3.一键启动wordpress项目 4.查看相关信息参数 5.配置wordpress 1.创建wordpress项目目录 [root@docker ~]# mkdir wordpress [root@docker ~]# cd wordpress/ [root@docker wordpress]# 2.创建docker-compose.yml配置文件 [root@docker wordpress]#

  • 利用drone ci自动化部署静态博客的完整步骤

    目录 前言 准备 安装drone ci 1.docker-compose配置文件 2.docker-compose配置文件主要参数详解 drone server DRONE_SERVER_PROTO和DRONE_SERVER_HOST DRONE_RPC_SECRET DRONE_USER_CREATE DRONE_DATABASE_DRIVER DRONE_DATABASE_DATASOURCE DRONE_GITEE_CLIENT_ID和DRONE_GITEE_CLIENT_SECRET d

随机推荐