---
title: "使用容器升级 OCP - 云平台 OCP V4.2.1 | OceanBase 文档中心"
description: 使用容器升级 OCP 本节为您介绍如何使用 Docker 容器升级 OCP。 前提条件 部署 OCP 的宿主机上已安装 Docker，并且 docker 命令在系统的 PATH 路径中可以找到。目前暂不兼容 podman-docker，Docker 的安装请参考 安装 Docker 。 停止 OCP 服务 在升级 O…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lJTmRZ61jSUAAAAAAAAAAAAADiGDAQ/original) 云平台 OCPV 4.2.1

# 使用容器升级 OCP

更新时间：2024-03-11 17:06:01

[编辑](https://github.com/oceanbase/ocp-doc/edit/V4.2.1/zh-CN/400.upgrade-guide/200.upgrade-community-ocp/150.docker-upgrade-ocp.md)  

本节为您介绍如何使用 Docker 容器升级 OCP。

## 前提条件

部署 OCP 的宿主机上已安装 Docker，并且 docker 命令在系统的 PATH 路径中可以找到。目前暂不兼容 podman-docker，Docker 的安装请参考 [安装 Docker](https://www.oceanbase.com/docs/common-ocp-1000000000401720)。

## 停止 OCP 服务

在升级 OCP 前，您需先停止 OCP 服务。根据部署方式不同，停止 OCP 服务的方式也有所不同。

### 停止 OCP 容器

若待升级的 OCP 为容器方式部署的，可以通过如下命令停止容器：

```json
docker kill ${container_name}

```

### 停止 OCP 进程

若待升级的 OCP 为 RPM 包方式部署的，可以通过如下命令停止进程：

```json
# find ocp process
ps -ef | grep ocp

# kill ocp process
kill -9 ${pid_of_OCP}

```

## 拉取 OCP 镜像

在升级 OCP 前，您需先拉取 OCP 镜像到本地。

- **在线环境**

  若您的部署环境可以正常访问 dockerhub，可直接通过如下命令来拉取 OCP 镜像。

  ```bash
  docker pull oceanbase/ocp-ce:4.2.1

  ```
 - **离线环境**

  若您的部署环境无法访问 dockerhub，则需要在其他可以正常访问的主机上先将镜像拉取下来，再导入到部署环境中。

  ```bash
  # execute at a host being able to access dockerhub
  docker pull oceanbase/ocp-ce:4.2.1
  docker save -o ocp-ce.tar oceanbase/ocp-ce:4.2.1
  scp ocp-ce.tar ${user}@${target}:/tmp/

  # execute at target host
  docker load < /tmp/ocp-ce.tar

  ```

拉取 OCP 镜像后，您可以通过如下命令检查镜像的拉取情况，若得到如下图所示的结果则表示镜像已经拉取或者导入成功。

```bash
docker images | grep ocp-ce

```

![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/422/%E6%8B%89%E5%8F%96%E9%95%9C%E5%83%8F.png)

## 启动 OCP 容器

使用原 OCP 的 metadb 启动新版本的 OCP 容器完成升级。

#### 注意

OCP 的容器名不能和升级前的容器名相同，否则会启动失败。

使用如下命令来启动 OCP 容器：

```json
## set environment parameters
export OCP_CPU_COUNT=4
export OCP_MEMORY_GB=8
export OCP_METADB_HOST=xxx.xxx.xxx.xxx # do not use 127.0.0.1 or localhsot
export OCP_METADB_PORT=2881
export OCP_METADB_USER=root@ocp_meta
export OCP_METADB_PASSWORD=ocp_meta_password
export OCP_METADB_DBNAME=ocp_meta
export OCP_MONITORDB_USER=root@ocp_monitor
export OCP_MONITORDB_PASSWORD=ocp_monitor_password
export OCP_MONITORDB_DBNAME=ocp_monitor
export OCP_CONFIG_PROPERTIES=`cat << EOF
server.port:8080
ocp.site.url:http://xxx.xxx.xxx.xxx:8080
obsdk.ob.connection.mode:direct
EOF
`

# start ocp container
docker run -d --name ocp-421 \
--network host \
--cpu-period 100000 --cpu-quota ${OCP_CPU_COUNT}00000 --memory=${OCP_MEMORY_GB}G \
 -e OCP_METADB_HOST="${OCP_METADB_HOST}" \
 -e OCP_METADB_PORT="${OCP_METADB_PORT}" \
 -e OCP_METADB_DBNAME="${OCP_METADB_DBNAME}" \
 -e OCP_METADB_USER="${OCP_METADB_USER}" \
 -e OCP_METADB_PASSWORD="${OCP_METADB_PASSWORD}" \
 -e OCP_MONITORDB_DBNAME="${OCP_MONITORDB_DBNAME}" \
 -e OCP_MONITORDB_USER="${OCP_MONITORDB_USER}" \
 -e OCP_MONITORDB_PASSWORD="${OCP_MONITORDB_PASSWORD}" \
 -e OCP_CONFIG_PROPERTIES="${OCP_CONFIG_PROPERTIES}" \
oceanbase/ocp-ce:4.2.1

```

**环境变量说明:**

| 变量名 | 含义 |
| --- | --- |
| OCP_CPU_COUNT | 分配给 OCP 容器的 CPU 核心数，请参考 [主机规划](https://www.oceanbase.com/docs/common-ocp-1000000000368845)。 |
| OCP_MEMORY_GB | 分配给 OCP 容器的内存（单位是 GiB），请参考 [主机规划](https://www.oceanbase.com/docs/common-ocp-1000000000368845)。 |
| OCP_METADB_HOST | OCP metadb 连接地址。 |
| OCP_METADB_PORT | OCP metadb 连接端口。 |
| OCP_METADB_DBNAME | OCP metadb 数据库名。 |
| OCP_METADB_USER | OCP metadb 用户。如果直连 observer 可以使用 user@tenant 形式；如果使用 obproxy 可以使用 user@tenant#cluster 形式。 |
| OCP_METADB_PASSWORD | OCP metadb 用户密码。 |
| OCP_MONITORDB_DBNAME | OCP monitordb 数据库名。 |
| OCP_MONITORDB_USER | OCP monitordb 用户。如果直连 observer 可以使用 user@tenant 形式；如果使用 obproxy 可以使用 user@tenant#cluster 形式。 |
| OCP_MONITORDB_PASSWORD | OCP monitordb 用户密码。 |
| OCP_CONFIG_PROPERTIES | OCP 系统参数配置，可以设置多行，每行一个系统参数，用 ‘:’ 分割。 |

## 检查 OCP 升级结果

1. OCP 容器启动之后，需要等待 metadb 初始化和服务启动，一般需要两分钟左右的时间，在浏览器中输入 OCP 访问地址，出现登录页面即说明服务启动成功。

   ![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/421-ce/%E7%99%BB%E5%BD%95%E9%A1%B5%E9%9D%A2.png)

   若 OCP 服务长时间未启动成功，可以通过查看日志来确认 OCP 的状态。

   ```json
   # use the following command to log into ocp container
   docker exec -it ocp-421 bash

   # check ocp bootstrap log
   less /home/admin/logs/ocp/bootstrap.log

   # check ocp runtime log
   less /home/admin/logs/ocp/ocp.log

   ```
 2. 查看 OCP 版本号，确认 OCP 已升级为目标版本。

   ![image.png](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/421-ce/%E5%8D%87%E7%BA%A7ocp.png)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
