ubuntu20.04地平线OE3.2.0 GPU Docker使用
1. docker安装
参考博文 ubuntu20.04 安装离线版docker-20.10.0
(1) 下载docker文件
开发PC为x86处理器,从 https://download.docker.com/linux/static/stable/x86_64/下载docker-20.10.0.tgz。
(2) 解压OE包里GPU镜像
解压 OE包里的GPU镜像
gzip -d docker_open_explorer_ubuntu_22_j6_gpu_v3.2.0.tar.gz
(3) 拷贝文件到/usr/bin/目录下
sudo cp docker/* /usr/bin/
若出现如下错误:
cp: cannot create regular file '/usr/bin/dockerd': Text file busy
可用如下指令,强制覆盖目标文件。
sudo cp -f docker/* /usr/bin/
(4) 将docker注册成系统服务
sudo gedit /etc/systemd/system/docker.service
文件中写人如下内容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s[Install]
WantedBy=multi-user.target
(5) 文件增加可执行权限
sudo chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
(6) 启动及测试
systemctl start docker
docker --version
输出如下类似:
Docker version 20.10.0, build 7287ab3
代表安装完成。
(7) 卸载
# 停止docker
sudo systemctl stop docker
# 移除开机自启动
systemctl disable docker.service
# 删除service服务
rm -f /etc/systemd/system/docker.service
# 删除docker相关命令
rm -f /usr/bin/docker*
rm -f /usr/bin/containerd*
rm -f /usr/bin/ctr
rm -f /usr/bin/runc
# 删除docker目录和容器相关文件
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
# 测试
docker --version
2. 安装NVIDIA Container Toolkit
# 配置源
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.listsudo apt-get update
# 安装NVIDIA Container Toolkit包
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}#重启docker
sudo systemctl restart docker
3. 加载镜像
# 加载tar镜像
docker load -i docker_open_explorer_ubuntu_22_j6_gpu_v3.2.0.tar
# 查看镜像id
docker images
输出如下:
REPOSITORY TAG IMAGE ID CREATED SIZE
openexplorer/ai_toolchain_ubuntu_22_j6_gpu v3.2.0 1d79ca1300ec 3 months ago 28.4GB
运行:
sudo docker run -it --gpus all 1d79ca1300ec
容器内验证可使用宿主机资源
kai@kai:~/Downloads/OE_3.2.0$ sudo docker run -it --gpus all 1d79ca1300ec
root@ca8a5a317809:/open_explorer# nvidia-smi
Fri Oct 10 16:38:41 2025
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 Quadro P2200 Off | 00000000:65:00.0 On | N/A |
| 52% 46C P8 8W / 75W | 569MiB / 5120MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------++---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
+---------------------------------------------------------------------------------------+