部署 seekdb 容器环境
本文介绍如何通过 Docker 容器部署 seekdb。
简介
seekdb Docker 镜像,可在 dockerhub、quay.io 和 ghcr.io 获取,旨在帮助用户快速搭建 seekdb 环境进行测试。
- 在 MacOS 和 Intel 芯片上运行此镜像时,如果 Docker 版本高于 4.9.0,存在已知问题。您可以在此处下载所需版本的 Docker。
- 此镜像仅用于测试;请勿在生产环境中使用。
前提条件
在部署 seekdb 之前,请确保满足以下要求:
-
您已安装 Docker 并启动 Docker 服务,详细操作请参考 Docker 文档。
-
您的机器需至少有 1 个物理核心和 2GB 内存。
启动 seekdb 实例
要启动 seekdb 实例,请使用以下命令:
docker run -d -p 2881:2881 oceanbase/seekdb
如果想在启动后执行初始化 SQL 脚本,您需要挂载包含初始化脚本的目录,然后通过环境变量 INIT_SCRIPTS_PATH 指定容器中的挂载目录。示例命令如下;
docker run -d -p 2881:2881 -v {init_sql_folder_path}:/root/boot/init.d -e INIT_SCRIPTS_PATH=/root/boot/init.d oceanbase/seekdb
命令中 {init_sql_folder_path} 为宿主机上初始化 SQL 脚本所在的路径。
请勿在 SQL 脚本中更改 root 用户的密码。如果您想更改 root 用户的密码,请使用环境变量 ROOT_PASSWORD,示例如下:docker run -d -p 2881:2881 -e ROOT_PASSWORD="******" oceanbase/seekdb。
支持的环境变量如下:
| 变量名 | 描述 | 默认值 |
|---|---|---|
| ROOT_PASSWORD | root 用户的密码。 | 默认为空 |
| CPU_COUNT | cpu_count 的值。 | 4 |
| MEMORY_LIMIT | memory_limit 的值。 | 2G |
| LOG_DISK_SIZE | log_disk_size 的值。 | 2G |
| DATAFILE_SIZE | datafile_size 的值。 | 2G |
| DATAFILE_NEXT | datafile_next 的值。 | 2G |
| DATAFILE_MAXSIZE | datafile_maxsize 的值。 | 50G |
| INIT_SCRIPTS_PATH | 容器中包含初始化脚本的路径。 | \ |
如果您想修改更多 seekdb 参数,可以使用配置文件方式部署 seekdb。
可以将配置文件挂载到容器中的 /etc/oceanbase/seekdb.cnf。
- 在主机服务器上创建配置文件,默认配置文件如下。
datafile_size=2G
datafile_next=2G
datafile_maxsize=50G
cpu_count=4
memory_limit=8G
log_disk_size=2G
# config the parameter in the following format
# key=value
- 启动 seekdb。
docker run -d -p 2881:2881 -v {config_file}:/etc/oceanbase/seekdb.cnf oceanbase/seekdb
命令中 {config_file} 为宿主机上配置文件的路径。
如果您决定使用配置文件,请不要指定与资源相关的环境变量。
数据持久化
seekdb 部署在 /var/lib/oceanbase 目录中,如果您想将数据持久化到主机服务器,请将主机服务器上的空目录挂载到此路径。
mkdir -p seekdb
docker run -d -p 2881:2881 -v $PWD/seekdb:/var/lib/oceanbase --name seekdb oceanbase/seekdb
连接 seekdb 实例
您可以使用宿主机本地 OBClient 或 MySQL 客户端连接到 seekdb 实例。
[admin@test001 ~]$ mysql -uroot -h127.0.0.1 -P2881 -p
若启动 seekdb 实例时未通过环境变量配置密码,实例中创建的用户默认使用空密码。
连接成功后,终端将显示如下内容:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3221628904
Server version: 5.7.25 OceanBase 4.3.5.3 SeekDB (r1.0.0.0) (Built 102025110516-83ac0ad994286047a3e713e82e9541383f6df531 Nov 5 2025)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
访问 obshell dashboard
容器也会启动 obshell,它提供了一个用户友好的 Web 界面,如果您想访问 obshell dashboard ,您也可以映射 obshell dashboard 的端口。
# 2886 是 obshell dashboard 的端口
docker run -d -p 2881:2881 -p 2886:2886 oceanbase/seekdb
您可以通过浏览器访问 http://${server_ip}:2886,登录密码与 root 用户的密码相同。如果未设置 ROOT_PASSWORD,请将密码字段留空。