一、目的
实战练习,上一节搭建了云服务器,当然要用起来才能产生成就感,这节不涉及代码,我们站在巨人的肩膀上进行实操。在搭建环境时,不要担心出错,不停的试错才能进步;不要担心没有用过涉及到的工具,工具设计的本质就是为了方便好用。
二、涉及到的工具
Halo开源建站工具、Docker容器、腾讯云服务器Ubuntu系统(参考上一节:云服务器使用1——腾讯云)、远程连接工具MobaXterm
Halo安装文档:使用 Docker Compose 部署 | Halo 文档
可以自己尝试根据官方的文档进行安装部署,如果不行,那就跟着我的脚步从一个全新的环境中部署一个属于自己网站。
三、搭建
Halo建议使用Docker Compose部署,首先需要安装Docker和Docker Compose。部分解惑放在文章尾部。
Docker和Docker Compose安装:
1、更新apt包索引,保证拉取到的都是新的
sudo apt-get update
2、安装ca-certificates证书,和curl工具,用来使用HTTPS源。
sudo apt-get install ca-certificates curl
3、创建目录,用来存储Docker GPG密钥;添加密钥权限,允许所有用户可读。
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
4、添加Docker软件包源列表
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5、再次更新apt包索引
sudo apt-get update
6、安装所需的Docker软件包及插件
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
7、验证是否安装成功
docker --version
docker compose version
出现版本号即安装成功。
Halo建站工具安装:
8、在家目录下创建文件夹
mkdir ~/halo && cd ~/halo
9、创建 docker-compose.yaml
touch docker-compose.yaml
仅创建 Halo 实例(使用默认的 H2 数据库),将以下内容复制到 docker-compose.yaml文件中。
version: "3"
services:
halo:
image: halohub/halo:2.12
container_name: halo
restart: on-failure:3
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
command:
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
10、启动halo服务,第一次启动会下载镜像,等一会儿即可。可能会报错,见疑问解答2。
docker compose up -d
11、实时查看日志,有日志输出,且没有报错,即搭建成功
docker compose logs -f
到这一步,已经完成了网站搭建。接下来就是解决访问问题,就差最后一点点了,坚持一下。
四、腾讯云配置
1、进入控制台,找到该服务器的防火墙,点击添加规则,开放8090端口
2、打开浏览器,地址栏输入:http://公网IP:8090/ 即可访问,首次进入看到初始化页面,那么恭喜你,完成了人生中第一个网站搭建。
五、疑问解答
1、命令 docker compose 和 docker-compose的区别。
Docker Compose可以独立安装,独立安装的使用docker-compose,以插件安装的方式,即使用docker compose。我们上面使用的插件安装方式,后续都使用docker compose指令。
2、启动报错:dial unix /var/run/docker.sock: connect: permission denied
ubuntu@VM-16-13-ubuntu:~/halo$ docker compose up -d
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Dhalo%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied
权限组的问题,普通用户访问部分资源权限不够,将其加入docker组中即可
sudo gpasswd -a $USER docker
newgrp docker
3、网站跑在公网上的,注意不要乱搞,传播不良消息哈;有必要的时候,及时进行备案。然后你就可以开心的进行自己的网站探索了。
好好学习,天天向上。