云耀云服务器L实例是新一代的轻量应用云服务器,专为中小企业和开发者设计,提供便捷的开箱即用体验。该产品提供丰富且经过严格筛选的应用镜像,可一键部署应用,极大程度简化了客户在云端构建电商网站、Web应用、小程序、学习环境以及各类开发测试等任务的过程。
智能不卡顿:华为云擎天架构加持,软硬协同结合AI算法智能调度,为您提供优质性能。华为云全球存算一张网,数据传输时延比眨眼还短,满足游戏、音视频等低网络时延场景的高要求。
价优随心用:超高性价比,超低门槛,敞开随心用。多种实例规格,平衡性能与成本。技术升级优化用云成本,普惠更多初创企业和开发者。
上手更简单:多种镜像、资源组合一键下单。严选多款高品质镜像,经过华为云官方严格测试,覆盖七大场景,预置模板,快速搭建,安全可信。自动化编排,资源一键开通,业务分钟级上线。平滑学习曲线,向导式应用搭建,应用轻松启用。
管理更省心:拓扑、资源、镜像可视化管理,业务架构透明化管理。贴心服务状态提醒,资源续退一键式操作,实现极简管理。资源负载、安全,使用率实时监控,保障服务永远在线。可选配丰富的安全服务,包括丰富的备份、主机安全等服务,提供最高等级的安全防护。
Bolo是基于 Java 的一款开源博客引擎,它基于 Latke 框架搭建,响应速度快,占用资源小;Bolo 完全免费,代码全部开源且允许二次开发自用。如果你在寻找一款美观、全面但不复杂的个人博客引擎,Bolo博客是一个不错的选择!
1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为云耀云服务器L实例,使用的应用镜像为Portainer 2.18.4;
3.由于使用的应用镜像为Portainer,云服务器自动已部署好Docker环境;
4.在华为云云耀云服务器L实例上部署Bolo开源个人博客。
服务器类别 | 应用镜像 | 内网IP地址 | Docker版本 | Portainer版本 | 操作系统版本 | Bolo版本 |
---|---|---|---|---|---|---|
云耀云服务器L实例 | Docker可视化Portainer | 192.168.0.168 | 24.0.4 | 2.18.4 | Ubuntu 22.04.1 LTS | 稳定版V2.6 |
本次实践前提是已购买华为云云耀云服务器L实例,检查当前云耀云服务器L实例状态处于正常运行中。
点击进入云耀云服务器L实例管理页面,复制其弹性公网IP地址,后面远程连接以及外网访问都要用上。
在Xshell工具中,填写服务器弹性公网IP地址、账号密码信息,ssh连接远程服务器。
华为云耀云服务器L实例使用Portainer应用镜像时,使用的操作系统版本为Ubuntu 22.04.1 LTS。
root@hcss-ecs-f91c:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
检查Docker版本,当前版本为24.0.4。
root@hcss-ecs-f91c:~# docker -v
Docker version 24.0.4, build 3713ee1
检查Docker服务状态,确保Docker服务正常运行。
root@hcss-ecs-f91c:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-10-02 15:33:45 CST; 20h ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 1340 (dockerd)
Tasks: 92
Memory: 57.6M
CPU: 26.349s
CGroup: /system.slice/docker.service
检查docker compose版本,确保docker compose可以正常使用。
root@hcss-ecs-f91c:~# docker compose version
Docker Compose version v2.19.1
在docker hub拉取Mysql镜像,容器镜像为mysql:5.7。
docker pull mysql:5.7
执行以下命令,创建Mysql容器的挂载目录。
mkdir -p /data/bolo/mysql
执行以下命令,创建Mysql容器。
docker run -d --name bolo-mysql --restart always -e MYSQL_ROOT_PASSWORD=bolo -e MYSQL_DATABASE=solo -e MYSQL_USER=bolo -e MYSQL_PASSWORD=bolo -p 3306:3306 -v /data/bolo/mysql:/var/lib/mysql mysql:5.7
检查Mysql容器状态,确保Mysql容器正常启动。
root@hcss-ecs-f91c:~/bolo-solo# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d676994e69e0 mysql:5.7 "docker-entrypoint.s…" 30 seconds ago Up 30 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp bolo-mysql
进入到Mysql容器内,给bolo用户授权。
docker exec -it bolo-mysql /bin/bash # 进入mysql容器内
mysql -uroot -p # 连接本地mysql数据库
给bolo用户进行授权。
GRANT ALL PRIVILEGES ON solo.* TO 'bolo'@'%' IDENTIFIED BY 'bolo';
FLUSH PRIVILEGES;
在github拉取Bolo源码,如果github拉取失败,可以使用国内码云: https://gitee.com/AdlerED/bolo-solo。
git clone https://github.com/adlered/bolo-solo
进入Bolo项目的根目录,查看目录内容。
root@hcss-ecs-f91c:~# cd bolo-solo/
root@hcss-ecs-f91c:~/bolo-solo# ls
bolo-solo.iml Dockerfile git gulpfile.js LICENSE manifest.json package.json package-lock.json pic pom.xml preview README.md src ssh yarn.lock
再进入到Bolo项目的根目录,构建Docker镜像,需要耐心等待构建完成。
docker build -t "bolo" .
查看本地Bolo镜像,确定本地Bolo镜像构建成功。
root@hcss-ecs-f91c:~/bolo-solo# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
bolo latest 3cf2457afeb1 8 minutes ago 153MB
使用以下命令,创建Bolo容器,其中JDBC_URL的IP地址设置为华为云云耀云服务器L实例的内网IP地址192.168.0.168,–server_host更改为弹性公网IP地址。
docker run -d -p 8280:8080 --env RUNTIME_DB="MYSQL" \
--name bolo \
--restart always \
--env JDBC_USERNAME="bolo" \
--env JDBC_PASSWORD="bolo" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://192.168.0.168:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
bolo --listen_port=8080 \
--server_scheme=http --server_host=弹性公网IP地址
1.JDBC_USERNAME : MySQL数据库用户名;
2.JDBC_PASSWORD :数据库密码;
3.JDBC_URL :192.168.0.168 为服务器的域名(如没有域名,填写IP地址);
4.server_host :修改为自己的域名(或IP地址),这里云耀云服务器L实例的弹性公网IP地址;
5. -p 8280:8080 和 --listen_port=8080为端口参数,可以自行修改。
注意:–server_host选项后面必须使用华为云云耀云服务器L实例的公网地址,本人第一次部署时使用的是其内网IP地址192.168.0.168,后面初始化设置完毕后会自动跳转到该内网IP地址,造成外网无法访问的问题。将其修改为华为云云耀云服务器L实例的弹性公网IP地址后,初始化完毕后跳转到弹性公网IP地址,访问正常。
检查bolo相关容器状态,确保bolo容器正常运行。
root@hcss-ecs-f91c:~/bolo-solo# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3560203c1ee1 bolo "java -cp WEB-INF/li…" 21 seconds ago Up 20 seconds 0.0.0.0:8280->8080/tcp, :::8280->8080/tcp bolo
d676994e69e0 mysql:5.7 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp bolo-mysql
检查bolo容器日志,确保bolo服务正常启动。
docker logs bolo
进入华为云云耀云服务器L实例的安全组管理页面,在入方向放行8280端口。
访问地址:http://弹性公网IP地址:8280/,如果无法访问,查看ufw防火墙是否关闭。
设置管理员账号和密码,点击“开始初始化”。
初始化完毕后,自动跳转到Bolo首页。
点击首页的后台管理登录入口,输入管理员账号和密码,进入Bolo后台管理页面。
点击发布文章模块,编辑文章内容,发表即可。
访问bolo首页,点击发布的文章,查看文章内容。