单机多卡集群部署QuickStart
样例类型
假设客户服务器IP地址为192.168.1.217
假设大容量数据盘在 /data
授权参数
- 在线授权模式 (-e LICENSE_SERVER=CN -e LICENSE_KEY=XGRIDS交付的AppKey)
- 离线授权模式 需要采用offline版本镜像 (-e CODEMETER_SERVER=192.168.xx.xx)
- 离线授权服务器需按照说明书提前安装好
使用MySQL8 docker版作为任务信息持久化数据库
服务器配置确认
确认系统OS版本
推荐Ubuntu20.04以上
确认基础软件
docker以及显卡驱动支持
确认NVIDIA驱动版本 > 545
nvidia-smi
确认开启NVIDIA驱动常驻模式
sudo nvidia-smi -pm 1
Docker配置
编辑 /etc/docker/daemon.json,增加cfgoups配置(如果默认是systemd)和国内docker镜像源等并重启Docker
![这张图片展示了/etc/docker/daemon.json的配置内容,配置核心内容为docker的runtime相关设置,其中关键部分“exec-opts": \["native.cgroupdriver=cgroupfs”\]被红色方框标注突出显示,该配置对应文档中Docker配置环节要求修改的cfgoups配置,用于Docker的相关配置调整。](https://cdn-docs.xgrids.cloud/assets/05-daemon%E9%85%8D%E7%BD%AE-7yoQGycc.webp)
确认$ docker info
...
Cgroup Driver: cgroupfs # 如果看到Cgroup Driver = systemd,则可能发生容器丢显卡问题
Cgroup Version: 1
Consul服务注册中心快速部署
拉取consul镜像
docker pull hashicorp/consul:1.20
或者 如果外网无法连接
wget https://cdn-bukbb1.xgrids.cloud/developer/deploy/lcc/consul-120.tar.gz
gunzip -c consul-120.tar.gz | docker load
启动consul
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'
访问地址
http://192.168.1.217:8500/ui/
MySQL数据库快速部署
拉取mysql镜像
docker pull mysql:8.0
或者
wget https://cdn-bukbb1.xgrids.cloud/developer/deploy/lcc/mysql-8.tar.gz
gunzip -c mysql-8.tar.gz | docker load
启动mysql8镜像(支持字符集设定)
docker run -d --restart=always --name mysql8 -e MYSQL_CHARACTER_SET_SERVER=utf8mb4 -e MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci -e MYSQL_ROOT_PASSWORD=pwd123456 -e MYSQL_DATABASE=lcc-storage -v /data/lcc/mysql-data:/var/lib/mysql -p 3306:3306 mysql:8.0
💡
生产安全提示:上述命令用于快速体验,可直接复制运行;生产环境请更换强密码并使用专用最小权限数据库账号,限制 MySQL 3306 与 phpMyAdmin 的网络访问范围,不要直接暴露到公网。
拉取phpmyadmin镜像
docker pull phpmyadmin
或者
https://cdn-bukbb1.xgrids.cloud/developer/deploy/lcc/phpmyadmin.tar.gz
gunzip -c phpmyadmin.tar.gz | docker load
启动phpmyadmin (数据库管理界面)
docker run -d --restart=always --name phpmyadmin -e PMA_HOST=192.168.1.217 -e PMA_PORT=3306 -p 8098:80 phpmyadmin
部署后数据库界面访问地址
http://192.168.1.217:8098/index.php?route=/database/structure&db=lcc-storage
启动LCC Docker容器集群
拉取和导入镜像
启动后的集群访问地址
http://192.168.1.217:8080
启动使用容器主节点(CLUSTER_MAIN)
(使用0号显卡,命名为lcc-rebuild-0,使用端口8080 作为集群主节点)
特殊参数:某些服务器内的docker容器域名解析异常无法连接授权服务器,可增加参数 --dns 8.8.8.8
docker run -d --restart always --name=lcc-rebuild-0 --gpus "device=0" -e APP_MODE=CLUSTER_MAIN -e SERVICE_REGISTER=http://192.168.1.217:8500 -v /data:/data -v /data/lcc-work:/work -p 8080:8080 -e CODEMETER_SERVER=192.168.xx.xx -e WEBUI=ON -e JOB_QUEUE_CONTROL=ON -e SERVICE_ADDRESS=192.168.1.217 -e SERVICE_PORT=8080 -e DB_TYPE="mysql" -e DB_USER="root" -e DB_PASSWORD="pwd123456" -e DB_HOST="192.168.1.217" -e DB_PORT="3306" -e DB_NAME="lcc-storage" -e RESULT_AUTO_ZIP=ON --dns 8.8.8.8 lcc-rebuild-cloud-server:tag-v1.1.0-offline-252856e6-20250908-01
启动第一个容器从节点 (CLUSTER_SUB)
(使1号显卡,命名为lcc-rebuild-1,使用端口8081,集群的从节点)
docker run -d --restart always --name=lcc-rebuild-1 --gpus "device=1" -e APP_MODE=CLUSTER_SUB -e SERVICE_REGISTER=http://192.168.1.217:8500 -v /data:/data -v /data/lcc-work:/work -p 8081:8080 -e CODEMETER_SERVER=192.168.xx.xx -e WEBUI=OFF -e JOB_QUEUE_CONTROL=OFF -e SERVICE_ADDRESS=192.168.1.217 -e SERVICE_PORT=8081 -e DB_TYPE="mysql" -e DB_USER="root" -e DB_PASSWORD="pwd123456" -e DB_HOST="192.168.1.217" -e DB_PORT="3306" -e DB_NAME="lcc-storage" -e RESULT_AUTO_ZIP=ON --dns 8.8.8.8 lcc-rebuild-cloud-server:tag-v1.1.0-offline-252856e6-20250908-01
启动其他节点(例如使用显卡2的第二个从节点)
为了便于分辨多个容器,建议参数按顺序修改参数中的数字索引。例如
参考第一个从节点的参数
--name=lcc-rebuild-1 --gpus "device=1" -p 8081:8080 -e SERVICE_PORT=8081
修改第二个从节点的参数:
--name=lcc-rebuild-2 --gpus "device=2" -p 8082:8080 -e SERVICE_PORT=8082
停止集群
docker stop lcc-rebuild-0
docker stop lcc-rebuild-1
...
删除集群
docker rm lcc-rebuild-0
docker rm lcc-rebuild-1
...