Files
Baradb/docs/zh/docker.md
T
dimgigov 40616ad3c0
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
Update repository URLs from GitHub to Codeberg
2026-05-15 12:11:00 +03:00

129 lines
2.4 KiB
Markdown

# Docker 部署指南
## 快速开始
```bash
git clone https://codeberg.org/baraba/baradb
cd barabaDB
docker build -t baradb:latest .
docker compose up -d
docker compose ps
docker compose logs -f
```
## 文件
| 文件 | 描述 |
|------|------|
| `Dockerfile` | 多阶段生产构建 |
| `docker-compose.yml` | 开发配置 |
| `docker-compose.prod.yml` | 生产配置 |
| `docker-compose.override.yml` | 开发覆盖(自动加载)|
| `docker-entrypoint.sh` | 初始化入口脚本 |
| `.dockerignore` | 不复制到镜像的文件 |
| `scripts/docker-build.sh` | 构建辅助脚本 |
| `scripts/docker-run.sh` | 运行辅助脚本 |
## 构建镜像
```bash
docker build -t baradb:latest .
./scripts/docker-build.sh
```
## 运行
### 开发 (docker compose)
```bash
docker compose up -d
docker compose down
docker compose logs -f
```
### 生产 (docker compose)
```bash
docker compose -f docker-compose.prod.yml up -d
```
### 手动 (docker run)
```bash
docker run -d \
--name baradb \
-p 9472:9472 \
-p 9470:9470 \
-p 9471:9471 \
-v baradb_data:/data \
baradb:latest
```
## 端口
| 端口 | 描述 |
|------|------|
| `9472` | 二进制协议 |
| `9470` | HTTP/REST API |
| `9471` | WebSocket |
## 环境变量
| 变量 | 默认值 | 描述 |
|------|--------|------|
| `BARADB_ADDRESS` | `0.0.0.0` | 监听地址 |
| `BARADB_PORT` | `9472` | 二进制协议端口 |
| `BARADB_HTTP_PORT` | `9470` | HTTP 端口 |
| `BARADB_DATA_DIR` | `/data` | 数据目录 |
## 卷
| 路径 | 描述 |
|------|------|
| `/data` | 主数据目录 |
| `/data/server/wal` | 预写日志 |
| `/data/server/sstables` | SSTable 文件 |
## 生产检查清单
- [ ]`./certs/` 创建 TLS 证书
- [ ] 设置强 `BARADB_JWT_SECRET`
- [ ] 配置防火墙规则
- [ ] 配置定期备份
- [ ] 检查资源限制
- [ ] 设置监控
## Docker 中的 TLS
```bash
mkdir -p certs
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout certs/server.key -out certs/server.crt
```
## Docker 备份
```bash
docker exec baradb /app/backup backup --data-dir=/data
docker exec baradb /app/backup list
docker exec baradb /app/backup restore --input=backup_xxx.tar.gz
```
## 故障排除
### 容器不启动
```bash
docker compose logs -f baradb
docker compose ps
```
### 无法连接数据库
```bash
docker port baradb
docker exec baradb wget -qO- http://localhost:9470/health
```