首批通过分布式安全可靠测评,为关键业务系统打造
安装 OAT
更新时间:2026-06-15 15:55:31
本文介绍如何 Docker 部署 OAT。
前提条件
在部署 OAT 之前,您需要确认以下信息:
您的操作系统满足以下条件:
服务器类型 操作系统 支持版本 x86_64/ARM aarch64 RHEL (及兼容的 RockyLinux、CentOS 等) 7.2 及以上版本 x86_64/ARM aarch64 Anolis (及兼容的 Alibaba Cloud Linux、麒麟V10、统信UOS、中国移动 BC-Linux、凝思OS、中科方德等) 8.4 及以上版本 x86_64/ARM aarch64 Debian (及兼容的 Ubuntu 等) 11 及以上 x86_64/ARM aarch64 openSUSE 12SP3 及以上 x86_64/ARM aarch64 openSUSE 12SP3 及以上 x86_64/ARM aarch64 凝思 V6.0.99 及以上 如果使用 OAT 镜像包进行安装需要您已经安装并启动 Docker。推荐 Docker 版本为社区版 18.09.9 及以上。
注意
如果您使用 oat-all-in-one 安装包部署 OAT,oat-all-in-one 的
install.sh脚本将自动安装 Docker,您无需再单独安装 Docker。OAT 的默认端口
7000未被占用。
使用 oat-all-in-one 安装包安装 OAT
说明
推荐您使用 oat-all-in-one 安装包安装 OAT。
按照以下步骤安装 OAT:
请联系技术支持获取 OAT 的 oat-all-in-one 安装包。
解压 oat-all-in-one 安装包。
示例如下:
tar -xf oat-all-in-one-arm-xxx.tar运行安装脚本
install.sh。示例如下:
sh oat-all-in-one-arm/install.sh运行此命令将自动安装 Docker (如果您的环境没有 Dcoker),部署 OAT 并扫描 oat-all-in-one 中包含的镜像和工具软件包。
根据提示,依次确认以下信息:
- 请输入 Docker 的根目录(建议设置为单独挂载的目录),默认值
/docker(无需手动创建这个目录),可自定义。如果已安装 Docker,会跳过此步骤。 - 请输入 OAT 数据目录的路径,默认值
/oat_data(无需手动创建这个目录),可自定义。 - 请输入 OAT HTTP 监听端口,默认值
7000,可自定义。 - 请输入 OAT 数据库端口,默认值
3306,可自定义。 - 请输入 OAT 管理员账户密码(设置初始登录密码),可自定义。
- 根据返回的 URL 访问 OAT,验证 OAT 服务的可用性。
示例如下:
说明
因为服务器已安装了 Docker,所以本次安装跳过了安装 Docker 的步骤。
OAT 数据目录的路径,修改为
/data/oat_data,然后回车。Input the OAT data dir: /data/oat_dataOAT HTTP 监听端口使用默认值,直接回车。
Input the OAT HTTP listen port: 7000OAT 数据库端口使用默认值,直接回车。
Input the OAT database port: 3306OAT 管理员 admin 用户密码(初始登录密码)修改后,回车。
Input the OAT admin user password(login password): ******根据返回的 URL 访问 OAT,验证 OAT 服务的可用性。
返回结果如下:
Start prepare docker Docker is already exists, start check... Already installed docker check healthy, skip install docker Start prepare OAT Loaded image: xxx/oceanbase/oat:x.x.x_20241025_arm 45fd5a9b31b0af6aeb07b3e485503ad4c64629170b91d1d3c9e8128e8e532125 check OAT url http://127.0.0.1:7000/hc OAT API not ready, please wait, sleep 5s retry... OAT API not ready, please wait, sleep 5s retry... OAT API not ready, please wait, sleep 5s retry... OAT API not ready, please wait, sleep 5s retry... OAT API not ready, please wait, sleep 5s retry... OAT API not ready, please wait, sleep 5s retry... OAT API ready Copy images and binary_packages to OAT data dir Trigger OAT scan api to find images and binary_packages Trigger scan task success, please visit OAT web site and wait for scan task finished OAT is ready for visit url is: http://<current_ip>:7000 user/password is: admin/******
- 请输入 Docker 的根目录(建议设置为单独挂载的目录),默认值
说明
install.sh脚本启动 OAT 容器默认使用--net host(主机网络模式)。如您需要配置为其他网络模式,请使用 OAT 镜像手动启动容器。- x86(arrch64)版本的
oat-all-in-one默认只包含 x86(aarch64)和 noarch 的镜像和软件包,如需 aarch64(x86)架构,请自行下载拷贝到 OAT 容器挂载的对应目录,然后发起扫描任务进行添加。
使用 OAT docker image 安装 OAT
获取 OAT 安装包。
注意
请联系 OAT 技术支持人员获取安装包。
使用
scp命令将 OAT 安装包上传到服务器中。其中
oat_server为部署 OAT 的服务器的 IP 地址。scp oat.tgz <oat_server_user>@<oat_server_ip>:~/示例如下:
scp oat_x.x.x_20241025_arm.tgz root@xxx.xxx.xxx.xxx:/home/admin/oat_rpm挂载 OAT 目录。
在服务器创建
/data_dir目录(可自定义路径,以/data_dir为例进行说明),用来保存 OAT 的持久化数据。在
/data_dir目录被挂载到 OAT 容器后,OAT 会自动创建/data_dir/logs、/data_dir/images和/data_dir/db目录,分别用于存放 OAT 的系统日志、组件和产品的 Docker 镜像以及 OAT 的数据库文件。mkdir -p /data_dir将 OAT 安装包装载为镜像。
docker load -i oat_xxx_xxxxxxxx_xxx.tgz其中
oat_xxx_xxxxxxxx_xxx.tgz为安装包的名称。示例如下:
docker load -i oat_x.x.x_20241025_arm.tgz返回结果如下:
Loaded image: xxx/oceanbase/oat:x.x.x_20241025_arm使用
docker images命令获取 OAT 镜像的标签。说明
当只加载了一个 OAT 安装包时,使用示例命令即可。当加载了多个安装包时,使用
docker images命令查看显示内容,并使用冒号(:)连接前两列的内容。oat_image=`docker images | grep oat | awk '{printf $1":"$2"\n"}'`运行
docker run命令,启动 OAT。其中
$oat_image是 OAT 镜像的标签。docker run -d --net host --name oat -v /data_dir:/data -e OAT_INITIAL_ADMIN_PASSWORD=xxx --restart on-failure:5 $oat_image说明
- OAT 的 HTTP 服务默认监听 7000 端口,可以指定
-e HTTP_PORT=7001参数修改为其他端口。 - 可以指定
-e OAT_INITIAL_ADMIN_PASSWORD=xxx参数修改 OAT 的密码。 - OAT 内置了 MariaDB 作为数据存储,默认监听 3306 端口,可以指定
-e DB_PORT=3307参数修改为其他端口。 - 建议使用
--net host参数启动,因为 bridge 网络模式启动的容器可能被docker0网桥故障或操作系统参数ip_forward影响。
示例如下:
docker run -d --net host --name oat -v /data_dir:/data -e OAT_INITIAL_ADMIN_PASSWORD=****** --restart on-failure:5 $oat_image返回结果如下:
490344724bfcb2801da271196ebc38b5c15547b796178dc7660553ae62b668c2使用 OAT docker image 安装 OAT 时,支持开启 HTTPS,命令如下:
docker run -itd --name oat --net host -e ENABLE_HTTPS=true -e HTTP_PORT=7000 -e OAT_INITIAL_ADMIN_PASSWORD=****** -v /data_dir:/data -v <替换为宿主机证书的.crt文件路径>:/data/cert/oat.crt -v <替换为宿主机证书的.key文件路径>:/data/cert/oat.key --restart on-failure:5 $oat_image参数说明:
说明
OAT 内置了 MariaDB 作为数据存储,默认监听 3306 端口,可以指定
-e DB_PORT=3307参数修改为其他端口。参数 说明 -itd 表示创建一个在后台运行但保留交互式终端能力的容器。这是三个参数的组合,具体如下: -i(interactive):表示保持标准输入打开,允许与容器交互。-t(tty):表示分配一个伪终端,使交互操作更友好。-d(detach):表示让容器在后台运行(守护进程模式)。
--name oat 表示为容器指定一个名称 oat,便于后续通过名称(而非随机 ID)来管理容器。--net host 表示使用 Host 网络模式。容器将直接使用宿主机的网络栈,共享宿主机的 IP 地址和端口。这意味着容器内监听 7000端口的服务,在宿主机上直接通过宿主机IP:7000即可访问,无需再做端口映射。说明
建议使用
--net host参数启动,因为 bridge 网络模式启动的容器可能被docker0网桥故障或操作系统参数ip_forward影响。-e ENABLE_HTTPS=true 表示 OAT 应用程序启用 HTTPS 协议。参数 ENABLE_HTTPS用于控制是否启动 HTTPS 协议,默认值为false。注意
使用参数
ENABLE_HTTPS启用 HTTPS 协议,还需挂载 TLS 证书。-e HTTP_PORT=7000 表示指定 HTTPS/HTTP 服务的监听端口。参数 HTTP_PORT用于设置 HTTPS/HTTP 服务的监听端口,默认值为7000。-e OAT_INITIAL_ADMIN_PASSWORD=****** 表示用于设置 OAT 系统初始管理员的密码。参数 OAT_INITIAL_ADMIN_PASSWORD用于设置 OAT 的初始密码。-v /data_dir:/data 表示数据卷挂载,将宿主机的 /data_dir目录映射到容器内的/data目录。容器内 OAT 产生的数据(如配置文件、数据库文件)会持久化保存在宿主机上,避免容器删除后数据丢失。-v <宿主机证书.crt路径>:/data/cert/oat.crt 表示数据卷挂载,将宿主机上 TLS 证书的 .crt(公钥)文件,挂载到容器内指定的路径(/data/cert/oat.crt为 OAT 容器中使用证书的路径)。-v <宿主机证书.key路径>:/data/cert/oat.key 表示数据卷挂载,将宿主机上 TLS 证书的 .key(私钥)文件,挂载到容器内指定的路径(/data/cert/oat.key为 OAT 容器中使用证书的路径)。--restart on-failure:5 表示设置容器的重启策略。 on-failure表示仅在容器非正常退出(即退出状态码非 0)时才会自动重启。:5表示 Docker 尝试重启的最大次数为 5 次。这是一种保障服务可用性但又避免无限重启循环的常用策略。$oat_image 表示 OAT 镜像的标签(上面第 5 步为该变量赋值)。 - OAT 的 HTTP 服务默认监听 7000 端口,可以指定
启动成功后,在浏览器地址栏输入
http://<oat_server_ip>:7000。其中
<oat_server_ip>替换为部署 OAT 的服务器的 IP 地址。如果在浏览器窗口中看到登录界面,表示已经成功安装并启动 OAT。