一、配置docker
1. 安装docker
#关闭Linux和SELinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
getenforce
#配置YUM仓库
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker及相关组件
yum install -y docker-ce-20.10.24-3.el7.x86_64 \
docker-ce-cli-20.10.24-3.el7.x86_64 \
containerd.io \
docker-buildx-plugin-0.10.5-1.el7.x86_64.rpm \
docker-compose-plugin
docker-ce-20.10.24-3.el7.x86_64
: Docker Community Edition,也称为Docker CE,是一个开源的容器化平台。它允许开发者通过使用容器来构建、打包和部署应用程序。docker-ce-cli-20.10.24-3.el7.x86_64
: Docker CE的命令行界面(CLI)。CLI提供了一组命令,用于与Docker引擎进行交互,例如管理容器、镜像、网络等。containerd.io:Containerd
: 是一个面向容器的守护进程,它作为Docker引擎的核心组件之一。Containerd负责管理容器的生命周期,包括镜像管理、容器的创建、运行和销毁等。docker-buildx-plugin-0.10.5-1.el7.x86_64.rpm
: Docker Buildx是一个构建工具,它可以帮助开发者更高效地构建多平台的镜像。它支持同时构建多个平台的镜像,并提供了更多的构建选项和灵活性。docker-compose-plugin
: Docker Compose是一个用于定义和运行基于多容器应用的工具。它使用一个简单的YAML文件来定义应用的服务、网络和卷等,并通过一条命令即可启动、停止和管理整个应用。
2. 启动docker并设置开机自启
systemctl start docker
systemctl enable docker
3. 查看docker版本信息
docker version
4. 查看docker compose版本信息
docker compose version
注意事项: docker compose
的版本要大于等于2.X.X
5. 配置镜像加速器
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ung2thfc.mirror.aliyuncs.com",
"https://mirror.ccs.tencentyun.com"
]
}
6. 重启docker
systemctl daemon-reload
systemctl restart docker
二、编写docker-compose文件
1. 创建应用目录
mkdir -p /app/halo2
cd /app/halo2
2. 编辑docker-compose文件
vim docker-compose.yaml
Tip: vim 中粘贴文件时,行首产生大量 # ,可以进入vim的命令行模式,依次输入esc
,:set paste
进入粘贴模式即可解决。
version: "3"
services:
halo:
image: halohub/halo:2.13
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- /app/halo2/halo2_data:/root/.halo2
ports:
- "81:8090"
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=o#DwN&JSa56
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=lxf@2616
halodb:
image: mysql:8.0.31
container_name: halodb
restart: on-failure:3
networks:
halo_network:
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
volumes:
- /app/halo2/mysql_data:/var/lib/mysql
- ./mysqlBackup:/data/mysqlBackup
ports:
- "3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 3s
retries: 5
start_period: 30s
environment:
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
- MYSQL_ROOT_PASSWORD=o#DwN&JSa56
- MYSQL_DATABASE=halo
networks:
halo_network:
3. 启动服务
docker compose up -d