Docker如何安装solo博客部署到云服务器

发布时间:2021-11-16 11:08:08 作者:小新
来源:亿速云 阅读:230
# Docker如何安装solo博客部署到云服务器

## 前言

在当今互联网时代,拥有一个个人博客是展示自我、分享知识的重要方式。solo是一款由国内开发者打造的轻量级博客系统,基于Java开发,具有简洁高效的特点。结合Docker容器化技术,我们可以快速完成solo博客的部署。本文将详细介绍如何通过Docker将solo博客部署到云服务器上。

## 准备工作

### 1. 云服务器准备
- 推荐配置:1核CPU/2GB内存/50GB硬盘(最低1GB内存)
- 操作系统:Ubuntu 20.04/CentOS 7+(本文以Ubuntu 20.04为例)
- 开放端口:80(HTTP)、443(HTTPS)、8080(备用)

### 2. 域名准备(可选但建议)
- 已备案的域名
- DNS解析设置到服务器IP

### 3. 基础工具安装
```bash
# 更新系统软件包
sudo apt update && sudo apt upgrade -y

# 安装常用工具
sudo apt install -y curl wget vim git

一、Docker环境安装

1. 安装Docker引擎

# 卸载旧版本(如有)
sudo apt remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt install -y apt-transport-https ca-certificates gnupg-agent software-properties-common

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 添加稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

2. 验证安装

sudo docker --version
# 应显示类似:Docker version 20.10.12, build e91ed57

# 运行测试容器
sudo docker run hello-world

3. 配置Docker(可选)

# 将当前用户加入docker组(避免每次sudo)
sudo usermod -aG docker $USER
newgrp docker  # 立即生效

# 设置Docker开机自启
sudo systemctl enable docker

二、安装Docker Compose

# 下载最新稳定版
sudo curl -L "https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version
# 应显示:Docker Compose version v2.12.2

三、部署solo博客

1. 创建部署目录

mkdir -p ~/solo && cd ~/solo

2. 准备MySQL数据库(推荐方式)

# 创建专用网络
docker network create solo-network

# 启动MySQL容器
docker run -d \
  --name solo-mysql \
  --network solo-network \
  -e MYSQL_ROOT_PASSWORD=solo123456 \
  -e MYSQL_DATABASE=solo \
  -e MYSQL_USER=solo \
  -e MYSQL_PASSWORD=solo123456 \
  -v solo-mysql-data:/var/lib/mysql \
  --restart always \
  mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

3. 准备solo容器

创建docker-compose.yml文件:

version: '3'
services:
  solo:
    image: b3log/solo:latest
    container_name: solo
    restart: always
    ports:
      - "8080:8080"
    environment:
      - SERVER_PORT=8080
      - SERVER_SERVLET_CONTEXT_PATH=
      - SPRING_DATASOURCE_URL=jdbc:mysql://solo-mysql:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false
      - SPRING_DATASOURCE_USERNAME=solo
      - SPRING_DATASOURCE_PASSWORD=solo123456
      - RUNTIME_DB=mysql
      - LUTE_HTTP=http://localhost:8249
    volumes:
      - solo-data:/opt/solo
    depends_on:
      - solo-mysql
    networks:
      - solo-network

networks:
  solo-network:
    external: true

volumes:
  solo-data:

启动服务:

docker-compose up -d

4. 验证部署

docker ps -a  # 查看容器状态
docker logs solo  # 查看日志

访问测试:http://服务器IP:8080 应能看到solo初始化页面

四、配置反向代理(Nginx)

1. 安装Nginx

sudo apt install -y nginx
sudo systemctl enable nginx

2. 配置反向代理

创建配置文件/etc/nginx/conf.d/solo.conf

server {
    listen 80;
    server_name yourdomain.com;  # 替换为你的域名

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    access_log /var/log/nginx/solo.access.log;
    error_log /var/log/nginx/solo.error.log;
}

测试并重载配置:

sudo nginx -t
sudo systemctl reload nginx

五、HTTPS配置(Let’s Encrypt)

1. 安装Certbot

sudo apt install -y certbot python3-certbot-nginx

2. 获取证书

sudo certbot --nginx -d yourdomain.com

3. 自动续期测试

sudo certbot renew --dry-run

六、初始化solo博客

  1. 访问你的域名,进入初始化页面
  2. 设置管理员账号
  3. 配置博客基本信息(标题、副标题等)
  4. 选择皮肤(推荐使用官方默认皮肤)

七、高级配置

1. 邮件通知配置

docker-compose.yml中添加环境变量:

environment:
  - ML_ENABLED=true
  - ML_HOST=smtp.example.com
  - ML_PORT=465
  - ML_USERNAME=your@email.com
  - ML_PASSWORD=yourpassword
  - ML_FROM=your@email.com

2. 定期备份

创建备份脚本/root/solo/backup.sh

#!/bin/bash
DATE=$(date +%Y%m%d)
docker exec solo-mysql mysqldump -usolo -psolo123456 solo > /root/solo/backup/solo_db_${DATE}.sql
tar -czvf /root/solo/backup/solo_${DATE}.tar.gz /root/solo/backup/solo_db_${DATE}.sql /var/lib/docker/volumes/solo-data/_data

设置定时任务:

0 3 * * * /root/solo/backup.sh

常见问题解决

  1. 端口冲突问题

    • 检查端口占用:netstat -tulnp | grep 8080
    • 修改solo服务的端口映射
  2. 数据库连接失败

    • 检查MySQL容器是否正常运行
    • 验证连接信息是否正确
    • 查看日志:docker logs solo-mysql
  3. 内存不足

    • 增加SWAP空间
    • 调整JVM参数:-Xmx512m -Xms256m

结语

通过本文的详细步骤,你应该已经成功使用Docker在云服务器上部署了solo博客系统。Docker化的部署方式不仅简化了安装过程,还便于后续的维护和升级。现在你可以开始撰写你的第一篇博客文章,分享你的知识和见解了!

提示:定期执行docker-compose pulldocker-compose up -d可以保持solo为最新版本 “`

这篇文章共计约1750字,包含了从环境准备到最终部署的完整流程,采用Markdown格式编写,结构清晰,适合作为技术文档使用。

推荐阅读:
  1. 搭建自己的技术博客系列(二)把 Hexo 博客部署到 GitHub 上
  2. 用docker-compose部署wordpress博客系统

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker

上一篇:jquery如何查询第一个子节点

下一篇:jquery ajax有哪些优势

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》