对接Docker
将MindIO与未使用K8s管理的Docker对接时,需要使用Docker提供的原生命令,将宿主机上MindIO的Domain Socket文件映射到容器中固定目录“/usr/local/mindio/uds/”,该Domain Socket用于在容器中运行的SDK与宿主机上MindIO服务端程序之间通信,下发业务。以下列出两种场景的操作步骤。
创建新的容器
- 获取MindIO在宿主机上的安装路径。下面MindIO安装路径以“/opt/mindio”为例。
- 创建容器时,增加卷映射配置:“/opt/mindio/uds/:/usr/local/mindio/uds/”。
在已经创建好的容器中增加卷映射
- 获取MindIO在宿主机上的安装路径。下面MindIO安装路径以“/opt/mindio”为例。
- 查看容器存放路径。
docker info |grep Root
- 查询需要对接容器的Container ID。
docker ps -a
- 停止该容器。以停止一个名称为“mygptdd”的容器为例。
docker stop mygptdd
- 通过2与3获取到的容器存放路径与Container ID,进入到该容器的存放目录。
cd 容器存放路径/containers/Container ID/
3查询到的Container ID为完整ID的前缀,在进入目录时,输入前缀后,通过Tab键自动补齐。
- 修改config.v2.json文件,增加卷映射配置。
- 执行以下命令,打开config.v2.json文件。
vim hostconfig.json
- 输入以下内容后按“Enter”,以JSON格式对齐显示,便于编辑。
:%!python -m json.tool
- 按“i”进入编辑模式,找到MountPoints,并在该配置项最后增加如下内容。
"/opt/mindio/uds": { "Source": "/opt/mindio/uds/", "Destination": "/usr/local/mindio/uds/", "RW": true, "Name": "", "Driver": "", "Type": "bind", "Relabel": "rw", "Propagation": "rprivate", "Spec": { "Type": "bind", "Source": "/opt/mindio/uds/", "Target": "/usr/local/mindio/uds/" }, "SkipMountpointCreation": false }
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 执行以下命令,打开config.v2.json文件。
- 修改hostconfig.json配置文件。
- 执行以下命令,打开hostconfig.json文件。
vim hostconfig.json
- 输入以下内容后按“Enter”,格式化JSON文件,便于编辑。
:%!python -m json.tool
- 按“i”进入编辑模式,找到Binds,在该配置项结尾,新增如下内容。
"/opt/mindio/uds/:/usr/local/mindio/uds/:rw"
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 执行以下命令,打开hostconfig.json文件。
- 重启Docker服务。
systemctl restart docker
重启Docker服务,会停止该节点上所有运行的容器。
- 启动新增卷映射的容器,以容器名称为“mygptdd”为例。
docker start mygptdd
- 将MindIO SDK上传到容器中,参见在容器中安装MindIO SDK完成SDK安装。
- 如果使用MindIO加速服务的进程以非root用户运行,则需要将运行用户加入到HwHiAiUser组中,以用户“testuser”为例,命令如下:
usermod -a -G HwHiAiUser testuser
父主题: 使用指导