---
order: 1
navTitle: Docker部署SuccBI
---
# Docker部署SuccBI

Docker 是一个开源的应用容器引擎，其一次编译多次使用的特性有助于快速一致地交付应用程序，了解更多请访问[Docker官网](https://www.docker.com/)，本文介绍如何使用Docker部署SuccBI，步骤如下：

\[\[toc]]

## 安装Docker{#install-docker}

Docker安装部署请参考[官方手册](https://www.docker.org.cn/book/install/supported-platform-17.html)

## 拉取SuccBI镜像{#pull-succbi-image}

使用如下命令，拉取SuccBI镜像

```sh
docker pull registry.cn-hangzhou.aliyuncs.com/succbi/succbi:v5
```

下载完成后，可在本地Docker镜像列表中查看到`REPOSITORY`为`registry.cn-hangzhou.aliyuncs.com/succbi/succbi:v5`的镜像

```sh
docker images | grep succbi
```

![docker镜像列表](./images/2024-07-24-16-35-10.png)

::: tip 提示
如需下载指定版本的镜像，可以在拉取时指定版本号(如v5.2.6)
:::

## 创建挂载目录{#mount-directory}

SuccBI在运行过程中，会在[工作目录](../install/basic-install/workdir-and-defdb.md)中存放配置文件、上传文件等，而Docker容器重启后，会清空容器中的所有数据，因此需要将这些文件从宿主机挂载到容器中，挂载后容器对目录的修改会同步到宿主机中，保证了容器重启后，工作目录仍可以正常保留。

在宿主机创建如下内容：

1. `clusters-share`目录，路径为`/docker/SuccBI/clusters-share`，容器内的映射目录为`/opt/workdir/clusters-share`
2. `conf`目录，路径为`/docker/SuccBI/conf`，容器内的映射目录为`/opt/workdir/conf`

可选：

1. **启动环境变量**：可参考[设置启动环境变量](../install/middleware/tomcat.md#env)，镜像中已预设了基础配置，若需要增加其他配置可创建脚本，路径为`/docker/SuccBI/dockerenv.sh`，容器内的映射目录为`/usr/local/dockerenv.sh`
2. **jars目录**：可参考[JDBC驱动安装配置](../install/basic-install/jdbc-drivers.md)，镜像中内置了一些基础数据的驱动jar包，如需增加或者更新驱动，可以创建此目录。路径为`/docker/SuccBI/jars`，容器内的映射目录为`/opt/jars`
3. **配置tomcat内存**：启动容器时支持指定`MEM`参数配置内存，默认大小为1g。如`-e MEM=2`可将tomcat内存指定为`2g`
4. **配置BI上下文路径**：启动容器时支持指定`SERVICE`参数配置上下文路径，默认不带上下文。如`-e SERVICE=SuccBI`将上下文指定为`SuccBI`

## 启动容器{#start-container}

运行如下命令，启动容器

```sh
docker run -it -d --name SuccBI -p 12345:8080 \
-v /docker/SuccBI/clusters-share:/opt/workdir/clusters-share \
-v /docker/SuccBI/conf:/opt/workdir/conf \
registry.cn-hangzhou.aliyuncs.com/succbi/succbi:v5
```

参数注释：

- **--name**：容器名称为**SuccBI**
- **-p**：将容器的**8080**端口映射到宿主机**12345**端口
- **-v或--volume**：将[工作目录](#创建挂载目录)从宿主机挂载到容器中，用于数据持久化
- **registry.cn-hangzhou.aliyuncs.com/succbi/succbi:v5**：容器运行所使用的[镜像](#拉取SuccBI镜像)

容器启动后，服务也会同步启动，至此，Docker下SuccBI部署已完成，访问http://宿主ip:12345 即可进入SuccBI

## 常见问题{#problem}

### 如何进入容器{#howto-enter-container}

当容器中的服务出现异常时，可进入容器验证服务状态，查看日志等，具体步骤如下：

1. 获取容器ID和容器名称

   ```sh
   docker ps
   ```

   ![获取容器ID](./images/2024-07-25-09-35-31.png)

2. 通过容器ID或容器名称进入容器

   ```sh
   docker exec -it CONTAINER ID/NAMES /bin/bash
   ```

### 已启动的SuccBI容器如何升级镜像{#howto-update-image}

SuccBI镜像版本发布与[稳定版](../../whatsnew/README.md)保持一致，升级Docker中已配置SuccBI步骤如下：

1. 拉取最新的SuccBI镜像

   ```sh
   docker pull registry.cn-hangzhou.aliyuncs.com/succbi/succbi:v5
   ```

2. 停止并删除当前的SuccBI容器

   ```sh
   docker stop SuccBI
   docker rm SuccBI
   ```

3. 启动容器

   ```sh
   docker run -it -d --name SuccBI -p 12345:8080 \
   -v /docker/SuccBI/clusters-share:/opt/workdir/clusters-share \
   -v /docker/SuccBI/conf:/opt/workdir/conf \
   registry.cn-hangzhou.aliyuncs.com/succbi/succbi:v5
   ```
