容器啟動參數說明書
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