跳到主要内容

部署 seekdb 容器环境

本文介绍如何通过 Docker 容器部署 seekdb。

简介

seekdb Docker 镜像,可在 dockerhubquay.ioghcr.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
信息
  • 若拉取 Docker 镜像失败,您也可从 quay.io 或者 ghcr.io 仓库中拉取镜像,只需将上述拉取命令中的 oceanbase/seekdb 对应替换为 quay.io/oceanbase/seekdbghcr.io/oceanbase/seekdb,如执行 sudo docker run -d -p 2881:2881 quay.io/oceanbase/seekdb 从 quay.io 中拉取镜像。

  • 上述命令默认拉取最新版本,可根据实际需求在 dockerhubquay.ioghcr.io中选择版本。

如果想在启动后执行初始化 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_PASSWORDroot 用户的密码。默认为空
CPU_COUNTcpu_count 的值。4
MEMORY_LIMITmemory_limit 的值。2G
LOG_DISK_SIZElog_disk_size 的值。2G
DATAFILE_SIZEdatafile_size 的值。2G
DATAFILE_NEXTdatafile_next 的值。2G
DATAFILE_MAXSIZEdatafile_maxsize 的值。50G
INIT_SCRIPTS_PATH容器中包含初始化脚本的路径。\

如果您想修改更多 seekdb 参数,可以使用配置文件方式部署 seekdb。

可以将配置文件挂载到容器中的 /etc/oceanbase/seekdb.cnf

  1. 在主机服务器上创建配置文件,默认配置文件如下。
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
  1. 启动 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,请将密码字段留空。