已知我的系统为CentOS Stream 9,我需要使用docker安装cuda12版本的deepmd

一、卸载旧版本 Docker(如果之前安装过)

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

二、安装 Docker 所需的依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

三、添加 Docker 官方仓库

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

四、安装 Docker 引擎

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装docker引擎时,我出现了网络的错误:

Warning: failed loading '/etc/yum.repos.d/CentOS-Base.repo', skipping.
Docker CE Stable - x86_64                                                                                                                            0.0  B/s |   0  B     00:00    
Errors during downloading metadata for repository 'docker-ce-stable':
  - Curl error (35): SSL connect error for https://download.docker.com/linux/centos/9/x86_64/stable/repodata/repomd.xml [OpenSSL SSL_connect: Connection reset by peer in connection to download.docker.com:443 ]
Error: Failed to download metadata for repo 'docker-ce-stable': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

解决办法是切换为阿里云的docker镜像
1)备份原有 Docker repo:

sudo mv /etc/yum.repos.d/docker-ce.repo /etc/yum.repos.d/docker-ce.repo.bak

2)使用阿里云提供的 repo:

sudo tee /etc/yum.repos.d/docker-ce.repo <<-'EOF'
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF

请注意,如果你是 CentOS 7,请把 centos/9 改为 centos/7

五、启动并开机自启 Docker

sudo systemctl start docker
sudo systemctl enable docker

六、验证 Docker 是否安装成功

sudo docker run hello-world

看到类似以下内容即为安装成功:

Hello from Docker!
This message shows that your installation appears to be working correctly.

我安装的时候并没有看到该信息,但是docker ps会出现正常的信息。

七、配置非 root 用户权限(推荐)

为避免每次执行 docker 都要加 sudo,你可以将自己的用户加入 docker 用户组:

sudo usermod -aG docker $USER
newgrp docker

这里的$USER就是需要自己的用户名例如:dong

八、拉取deepmd的docker镜像

# 这是官网给出的命令,但是不对
docker pull ghcr.io/deepmodeling/deepmd-kit:2.2.8_cuda12.0_gpu
# 该找到他的docker官网,看看目前能够拉取的版本
https://github.com/deepmodeling/deepmd-kit/pkgs/container/deepmd-kit
# 最后能拉取的版本是这个
docker pull ghcr.io/deepmodeling/deepmd-kit:3.0.2_cuda128

拉取完后,通过docker images即可查看到
在这里插入图片描述

九、nvidia-docker的安装

# 1. 设置发行版变量
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

# 2. 添加 NVIDIA 官方 Docker 仓库(我用$distribution参数会报错,所以直接用的centos8的版本)
#curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \ sudo tee /etc/yum.repos.d/nvidia-docker.repo
curl -s -L https://nvidia.github.io/nvidia-docker/centos8/nvidia-docker.repo | \ sudo tee /etc/yum.repos.d/nvidia-docker.repo

# 3. 安装 nvidia-container-toolkit
sudo yum install -y nvidia-container-toolkit

# 4. 重启 Docker 服务
sudo systemctl restart docker

在这里插入图片描述

安装完后通过以下命令进入docker环境,nvidia-msi查看,显卡就可用了

docker run --gpus all -it ghcr.io/deepmodeling/deepmd-kit:3.0.2_cuda128 bash

十、一些基础的 Docker 命令

查看 Docker 状态:

sudo systemctl status docker

镜像列表:

docker images

容器列表:

docker ps -a

拉取镜像:

docker pull 镜像名

启动容器:

docker run -it 镜像名

停止容器:

docker stop 容器ID或名称

挂载:

docker run --gpu all -it -v /home/dong/myproject:/workspace ghcr.io/deepmodeling/deepmd-kit:devel bash

十一、后续测试中出现报错

Traceback (most recent call last):
  File "/opt/deepmd-kit/lib/python3.12/site-packages/tensorflow/python/client/session.py", line 1407, in _do_call
    return fn(*args)
           ^^^^^^^^^
  File "/opt/deepmd-kit/lib/python3.12/site-packages/tensorflow/python/client/session.py", line 1390, in _run_fn
    return self._call_tf_sessionrun(options, feed_dict, fetch_list,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/deepmd-kit/lib/python3.12/site-packages/tensorflow/python/client/session.py", line 1483, in _call_tf_sessionrun
    return tf_session.TF_SessionRun_wrapper(self._session, options, feed_dict,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found.

无法解决,所以跟换为了稳定版

docker pull ghcr.io/deepmodeling/deepmd-kit:devel_cu11
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐