Skip to content

Commit

Permalink
mod docker mount data&config
Browse files Browse the repository at this point in the history
  • Loading branch information
cyann7 committed Sep 15, 2023
1 parent 43256c5 commit 1442342
Showing 1 changed file with 32 additions and 38 deletions.
70 changes: 32 additions & 38 deletions docs/MatrixOne/Maintain/mount-data-by-docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,22 @@

本篇文档将指导你在使用 Docker 启动 MatrixOne 的情况下,如何挂载*数据目录**自定义配置文件*到 Docker 容器。

## 挂载数据目录

为了保证数据目录安全不丢失,参考以下详细步骤,挂载本地数据目录到 Docker 容器:
需要注意的是,Docker 不能对已经启动过的容器进行挂载,若想要挂载数据目录则需要重新创建一个 Docker 容器。

1. 检查 Docker 内是否已经启动 MatrixOne:
## 挂载数据目录

```
docker ps -a
```
参考以下详细步骤,挂载本地数据目录到 Docker 容器:

2. 如果 Docker 内有正在运行的 MatrixOne,需要先停止
1. 在本地创建一个**空目录** *${local_data_path}/mo-data*,其中 *${local_data_path}* 为你的本地文件夹路径。命令示例如下

```
docker stop <containerID>
docker rm <containerID>
```bash
mkdir ${local_data_path}/mo-data
```

如果没有正在运行的 MatrxiOne,请忽略这一步。
2. 把本地**空目录** *${local_data_path}/mo-data* 挂载到 Docker 容器目录 */mo-data* 下,命令示例如下:

3. 把本地**空目录**挂载到 Docker 容器目录 */mo-data* 下,命令示例如下:
```
sudo docker run --name <name> --privileged -d -p 6001:6001 -v ${local_data_path}/mo-data:/mo-data:rw matrixorigin/matrixone:1.0.0-rc1
```bash
sudo docker run --name <name> -d -p 6001:6001 -v ${local_data_path}/mo-data:/mo-data:rw matrixorigin/matrixone:1.0.0-rc1
```

|参数 | 描述|
Expand All @@ -35,44 +28,45 @@

如果你需要修改启动配置文件,建议你先将 Docker 内的启动配置文件拷贝到你本地目录,然后将存放配置文件的本地目录挂载到 Docker 容器目录下,参考以下详细步骤,挂载配置文件到 Docker 容器:

1. 检查 Docker 内是否已经启动 MatrixOne:
1. 首先启动一个 MatrixOne 的容器实例,这个容器实例将提供一套标准的启动配置文件

```
docker ps -a
```bash
docker run -d -p 6001:6001 --name matrixone matrixorigin/matrixone:1.0.0-rc1
```

2. 如果 Docker 内还没有正在运行的 MatrixOne,请先启动
2. 查看 Docker 已经启动的 MatrixOne 的 containerID,并将配置文件目录拷贝到本地目录的 *${local_config_path}* 目录下

```bash
docker ps
docker cp <containerID>:/etc/launch ${local_config_path}
```
docker run -d -p 6001:6001 --name matrixone --privileged=true matrixorigin/matrixone:1.0.0-rc1
```
3. 查看 Docker 已经启动 MatrixOne 的 containerID,并将配置文件目录拷贝到本地目录内:

```
docker ps -a
docker cp <containerID>:/etc .
```
3. 拷贝完成后,关停并销毁当前的 MatrixOne:

4. 拷贝完成后,关停当前的 MatrixOne:
```
```bash
docker stop <containerID>
docker rm <containerID>
```

5. (选做)修改本地配置文件并保存
4. (选做)若需要修改启动配置文件,则修改本地目录 *${local_config_path}/launch* 下的配置文件并保存

6. 挂载配置文件到 Docker 容器目录,同时启动 MatrixOne,挂载命令示例如下:
6. 挂载配置文件到 Docker 容器目录,同时创建并启动 MatrixOne,挂载命令示例如下:

```shell
sudo docker run --name <name> --privileged -d -p 6001:6001 -v ${local_config_path}/etc:/etc:rw --entrypoint "/mo-service" matrixorigin/matrixone:1.0.0-rc1 -launch /etc/launch/launch.toml
```bash
sudo docker run --name <name> -d -p 6001:6001 -v ${local_config_path}/launch:/etc/launch:rw --entrypoint "/mo-service" matrixorigin/matrixone:1.0.0-rc1 -launch /etc/launch/launch.toml
```

|参数 | 描述|
|---|---|
|${local_config_path}/etc:/etc|挂载本地配置文件目录 *${local_config_path}/etc* 到容器 */etc* 文件夹 |
|--entrypoint "/mo-service"|指定容器启动 MatrixOne 服务 |
|-launch /etc/launch/launch.toml| 启动 */etc/* 中的 MatrixOne 启动配置文件|
|${local_config_path}/launch:/etc/launch|挂载本地配置文件目录 *${local_config_path}/launch* 到容器 */etc/launch* 文件夹 |
|--entrypoint "/mo-service"|容器入口命令,即让容器启动 MatrixOne 服务 |
|-launch /etc/launch/launch.toml|容器入口命令对应的命令参数,即使用容器内 */etc/launch/launch.toml* 启动配置文件启动 MatrixOne 服务 |

!!! note
若 Docker 版本低于 20.10.18 或者 Docker client 和 Docker server 的版本不一致,推荐同时升级到 Docker 最新稳定版本后再尝试。若坚持使用,需要在 ```docker run``` 命令中加上参数 ```--privileged=true```,如:

```bash
docker run -d -p 6001:6001 --name matrixone --privileged=true matrixorigin/matrixone:1.0.0-rc1
```

更多关于 *Docker run* 的指令释义,运行命令 `docker run --help` 进行查看。

0 comments on commit 1442342

Please sign in to comment.