容器启动参数说明书
3 软件启动
3.1 LCC重建软件Docker版镜像的下载与安装
- 下载 lcc-rebuild-cloud-server-tag-x.x.x.tar.gz 镜像文件【具体下载地址由XGRIDS交付人员提供】,并执行导入命令:
下载地址:
https://cdn-bukbb1.xgrids.cloud/developer/deploy/lcc/lcc-rebuild-cloud-server-tag-x.x.x.tar.gz
用gunzip命令解压缩并用docker load命令导入镜像:
gunzip -c lcc-rebuild-cloud-server-tag-x.x.x.tar.gz | docker load
导入后的tag版本如下:
lcc-rebuild-cloud-server:tag-x.x.x
3.2 镜像启动命令
3.2.1 LCC重建软件镜像的启动
LCC重建软件以Docker镜像的方式提供,以docker命令启动。启动参数具体说明,请参考3.3章节。
离线授权版启动命令样例:
sudo docker run -d --gpus "device=0" -p 8080:8080 -v /local_work_folder:/work -v /local_work_folder/db-0:/app/db -e CODEMETER_SERVER=私有授权服务器IP地址 lcc-rebuild-cloud-server:tag-v1.0.0-offline-20250319010823
3.2.2 参考:快速启动Consul注册中心【集群版必须】
在单机多卡服务器上采用集群模式,启动多容器节点的时候,需要consul注册中心的支持。
如果您的机房环境内没有consul注册中心基础设施,下面是用Docker方式,快速的启动一个consul注册中心服务的样例:
sudo docker run -d --restart always --name=consul -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8500:8500 -p 8600:8600 hashicorp/consul:1.20 agent -server -ui -node=n1 -bootstrap-expect=1 -client='0.0.0.0'
注:
1,本示例以单机模式运行 Consul,且没有集群或 DNS 服务要求,主机开放 8500(Web UI 和 API)即可。
2,如果 Consul 本身以集群模式部署,需要确保 Consul 节点之间的 8300、8301、8302 和 8400 端口开放;如果需要 DNS 服务发现,则开放 8600 端口。详情请参考 Consul 官方说明文档。
3.2.3 参考:快速启动MySQL数据库
LCC重建软件的任务信息等存放在数据库中进行持久化。
当前版本支持【内嵌Sqlite DB文件】和【MySQL数据库】两种数据库,设置方式参考3.3章节。
如果您的机房环境内没有MySQL数据库基础设施,下面是一个采用MySQL8的镜像快速启动一个MySQL数据库服务,并创建所需的库和用户的样例:
# 建议采用mysql8。启动时设置字符集支持unicode,创建库lcc-storage-0,采用/data/lcc/mysql8-data目录进行数据持久化
sudo docker run -d --restart=always --name mysql8 -e MYSQL_CHARACTER_SET_SERVER=utf8mb4 -e MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci -e MYSQL_ROOT_PASSWORD=xxxx -e MYSQL_DATABASE=lcc-storage-0 -v /data/lcc/mysql8-data:/var/lib/mysql -p 3306:3306 mysql:8.0
# 登录创建一个LCC软件所使用的数据库用户,并赋予使用lcc-storage-0库的权限
CREATE USER 'lcc-user-0'@'%' IDENTIFIED BY 'xxxx密码';
GRANT ALL PRIVILEGES ON `lcc-storage-0`.* TO 'lcc-user-0'@'%';
3.3 容器启动参数说明
3.3.1 通用参数
| 参数 | 必要性 | 含义 |
|---|---|---|
| -d | 可选 | 使容器以后台模式运行。启动容器后,命令行将立即返回,而容器在后台继续运行。 |
| --pull always | 可选 | 总是尝试从远程仓库拉取最新的镜像版本,而不管本地是否已经存在该镜像。 仅在明确使用远程镜像仓库且已锁定交付 tag 时使用;离线导入镜像时不要使用此参数,避免启动时访问远程仓库或发生版本漂移。 |
| --restart always | 建议 | 合理设置Docker容器的重启策略,可以确保容器内进程在异常退出后能够自动恢复,从而提高应用的稳定性。 |
| --name=lcc-rebuild-0 | 建议 | 将此容器命名为lcc-rebuild-0 建议为每个容器有规律的命名,如和GPU的显卡保持一致性,便于容器管理。 |
| --gpus "device=0" | 必须 | 指定容器所使用的显卡编号。0为第一块显卡。 注意: 1,当前单容器内不支持多显卡,否则将导致异常。 2,容器启动时,禁止使用 --privileged=true 参数,否则将会出现GPU使用上的冲突。 |
| -p 8080:8080 | 必须 | 将容器节点的API端口,映射为宿主机的8080端口 注:Docker容器内部的API端口固定为8080,宿主机端口映射可自定义。。 |
| -e APP_MODE=CLUSTER_MAIN | 使用容器集群模式时 必须 |
若所购买授权中包含有【集群模式授权】,APP_MODE可设置为:
注意: 每个单机多卡容器集群中,只能有一个主节点。从节点只能被主节点作为处理单元所调用,多节点共同完成一个较大的重建任务。 |
| -e SERVICE_ACCESS_KEY=y6vera | 可选 | 指定当前容器的API时所需的鉴权accessKey字段。 默认值y6vera,如果容器设置此参数,从WebUI或其他业务系统访问API时,注意修改为相同的值,才能正常调用。 |
| -e JOB_QUEUE_CONTROL=ON/OFF | 可选 | 容器再启动时,是否自动开始执行队列中的任务。默认ON ※ 当重建任务正在进行时,新添加的重建任务,可以被暂存到DB的任务列表中待启动。 |
3.3.2 授权相关参数
| 参数 | 必要性 | 含义 |
|---|---|---|
| 离线授权模式 | ||
| -e CODEMETER_SERVER=192.168.68.205 | 离线授权时 必须 | 离线授权模式下,当前机房内的CodeMeter服务器的地址。 |
| 在线授权模式 | ||
| -e LICENSE_SERVER=CN or INTL -e LICENSE_KEY=xxxxxxx | 在线授权时 必须 | 在线授权模式下,申请授权的XGRIDS云端服务器地址。
LICENSE_KEY为XGRIDS所销售的在线授权密钥。 |
3.3.3 集群模式所需参数
| 参数 | 必要性 | 含义 |
|---|---|---|
| -e SERVICE_REGISTER=http://注册中心IP:注册中心端口 | 以集群模式启动时 必须 | CONSUL注册中心的地址和端口。 如果有独立的CONSUL服务,输入该服务的IP和端口。 如果直接用CLUSTER_MAIN节点作注册中心,IP地址采用宿主机的本机IP,端口号采用主节点容器对外暴露的注册中心端口8500 |
| -e SERVICE_ADDRESS=本容器对外暴露的IP地址 -e SERVICE_PORT=本容器对外暴露的宿主机端口 | 以集群模式启动时 必须 | 当前容器作为服务节点向注册中心注册时,自身的IP地址和API服务端口 |
| 拓扑一:使用 CLUSTER_MAIN 主节点内置 Consul 时,需映射 LCC 主容器 8500;拓扑二:使用独立 Consul 时,不要映射 LCC 主容器 8500,SERVICE_REGISTER 指向独立 Consul 地址: | ||
| -p 8500:8500 | 仅内置 Consul 拓扑的主节点 可选 | CLUSTER_MAIN 支持内置 Consul;仅使用该拓扑时才需映射主容器 8500。使用独立 Consul 时,LCC 主容器不映射 8500。 内置模式示例为:将宿主机的 8500 端口(可自定义)映射到 LCC 主容器内部固定的 8500 端口。
|
3.3.4 数据目录挂载
| 参数 | 必要性 | 含义 |
|---|---|---|
-v /local_work_folder:/work | 必须 | docker容器中的/work目录,必须挂载到宿主机目录。
|
| -v /data01:/data01 等 | 可选 | 根据实际业务需求挂载放有业务数据的路径。 挂载后的目录,可被容器内的处理所访问。 注意: 集群模式下,各节点应挂载完全相同的路径。 如果这些目录作为数据输入输出目录,需要保证其IO性能。 |
3.3.5 数据库相关参数
| 参数 | 必要性 | 含义 |
|---|---|---|
| -e DB_TYPE="mysql" 或 "sqlite" | 可选 | 当前系统支持两种数据库类型:内嵌数据库SQLite 或者 MySQL 如果不设置此参数,默认采用SQLite进行任务信息的持久化保存。 如果指定为"mysql",则可以链接MySQL数据库进行任务信息的持久化保存。 |
| DB_TYPE="sqlite" 时,可通过挂载db目录的形式,将数据库文件持久化到宿主机目录内: | ||
| -v /data/lcc-work/db-0:/app/db | 使用STAND_ALONE模式时,建议 | STAND_ALONE模式下,docker容器中的/app/db目录,建议每个容器挂载不同的宿主机目录,以持久化存储各个容器节点的DB数据。 这样即使容器删除后,仍然可以保留历史的重建任务信息。 注意: 如多个STAND_ALONE容器挂载同一个宿主机目录到/app/db,将会因为多个节点向一个数据库文件进行读写而导致错误。 |
| -v /data/lcc-work/db:/work/db | 使用CLUSTER模式时,可选 | DB_TYPE="sqlite" ,且以CLUSTER模式启动时,容器默认的数据库目录为/work/db。 CLUSTER模式下,同一个集群的容器节点必须挂载同一个/work目录,所以一般情况下无需特别挂载,数据库文件也能持久化到 /work/db目录。 |
| DB_TYPE="mysql" 时,通过指定下面的参数以连接外部MySQL数据库 | ||
| -e DB_USER="userxxx" -e DB_PASSWORD="pwdxxxxx" -e DB_HOST="192.168.11.11" -e DB_PORT="3306" -e DB_NAME="lcc-storage-0" | DB_TYPE="mysql"时,必须 | 注: 数据库可以无需初始化表结构, 只要DB_USER对DB_NAME所指定的数据库,具有DDL权限即可。 |
3.3.5 WebUI相关参数(Beta)
| 参数 | 必要性 | 含义 |
|---|---|---|
| -e WEBUI=ON/OFF | 可选 | 默认OFF ON的时候将会在API端口默认开启一个WebUI界面,可进行功能性操作 |
| -e RESULT_AUTO_ZIP="ON" 或 "OFF" | 可选 | LCC模型结果生成后是否生成一个zip压缩包,可通过WebUI界面的下载按钮进行Download |
3.4 数据目录管理模式参考
- ※建议※业务系统可在
/local_work_folder中,按照不同作业分别创建job目录。 - 并在目录中创建
input目录作为输入数据的存放目录; - 创建
output目录,作为算法输出结果的接收目录。 - 示例:
/local_work_folder
L /job001
L /input # 在input目录中放置Lixel设备的扫描工程数据
L /output # 将output目录中,算法将会输出结果数据
L /job002
L /input
L /output
3.5 测试重建数据样例
input中放置的K1、L2 Pro扫描工程数据样例如图所示:


input中放置的K1扫描工程数据样例下载地址(2.7G):https://cdn-bukbb1.xgrids.cloud/lcc-install/test-data/input-K1.zip
3.6 【中国大陆地区ONLY】无法连接Docker镜像源问题
由于中国的大陆地区的网络限制,有可能无法从Docker的官方源拉取到Consul、MySQL等镜像,建议配置国内镜像源,以解决此问题
1. 修改 /etc/docker/daemon.json,设置 registry mirror,具体命令如下:
sudo vim /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.1panel.live/"
]
}
EOF
2. 重启docker:
systemctl daemon-reload
systemctl restart docker