您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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
# 卸载旧版本(如有)
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
sudo docker --version
# 应显示类似:Docker version 20.10.12, build e91ed57
# 运行测试容器
sudo docker run hello-world
# 将当前用户加入docker组(避免每次sudo)
sudo usermod -aG docker $USER
newgrp docker # 立即生效
# 设置Docker开机自启
sudo systemctl enable docker
# 下载最新稳定版
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
mkdir -p ~/solo && cd ~/solo
# 创建专用网络
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
创建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
docker ps -a # 查看容器状态
docker logs solo # 查看日志
访问测试:http://服务器IP:8080
应能看到solo初始化页面
sudo apt install -y nginx
sudo systemctl enable nginx
创建配置文件/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
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
sudo certbot renew --dry-run
在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
创建备份脚本/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
端口冲突问题:
netstat -tulnp | grep 8080
solo
服务的端口映射数据库连接失败:
docker logs solo-mysql
内存不足:
-Xmx512m -Xms256m
通过本文的详细步骤,你应该已经成功使用Docker在云服务器上部署了solo博客系统。Docker化的部署方式不仅简化了安装过程,还便于后续的维护和升级。现在你可以开始撰写你的第一篇博客文章,分享你的知识和见解了!
提示:定期执行
docker-compose pull
和docker-compose up -d
可以保持solo为最新版本 “`
这篇文章共计约1750字,包含了从环境准备到最终部署的完整流程,采用Markdown格式编写,结构清晰,适合作为技术文档使用。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。