Skip to content

Latest commit

 

History

History
155 lines (110 loc) · 4.46 KB

README_CN.md

File metadata and controls

155 lines (110 loc) · 4.46 KB

rl_docker

English document

此项目用于配置基于isaac_gym的强化学习docker环境。

使用docker可以快速部署隔离的、虚拟的、完全相同的开发环境,不会出现“我的电脑能跑,你的电脑跑不了”的情况。

点击在Discord上讨论

如何使用

拉取本仓库到你的项目根目录下

git clone https://github.com/fan-ziqi/rl_docker.git
cd rl_docker

复制并修改配置文件

requirement_template.txt复制一份并命名为requirement.txt,在此文件中添加所需要的python依赖项。(在此文件中添加的依赖项在docker构建时下载,生成容器后不会重复下载)

cp -p requirement_template.txt requirement.txt

setup_template.sh复制一份并命名为setup.sh,在此文件中配置所有python包。(在此文件中添加的依赖项在docker容器每次运行时都会重新下载,仅为了解决某些依赖冲突的问题。没有特殊情况请将依赖项都写入requirement.txt中)

cp -p setup_template.sh setup.sh

对于setup_template.sh,其对应的工作目录文件层级如下:

rl_ws/
│
├── rl_docker/
│   └── ...
│
├── isaacgym/
│   ├── python/
│   │   ├── setup.py
│   │   └── ...
│   │
│   └── ...
│
├── rsl_rl/
│   ├── setup.py
│   └── ...
│
├── legged_gym/
│   ├── setup.py
│   └── ...
│
└── ...

构建镜像

bash build.sh

运行镜像

bash run.sh -g <gpus, should be num 1~9 or all> -d <true/false>
# example: bash run.sh -g all -d true

Git不会track这两个新建的文件,如有需要请自行修改.gitignore

使用Ctrl+P+Q可退出当前终端,使用exit结束容器;

查看资源使用情况

镜像中内置了nvitop,新建一个窗口,运行bash exec.sh进入容器,运行nvitop查看系统资源使用情况。使用exit或者Ctrl+P+Q均可退出当前终端而不结束容器;

问题解决

显卡问题

  • 如果使用的是RTX4090显卡,请修改docker/Dockerfile文件中的第一句为:

    nvcr.io/nvidia/pytorch:22.12-py3
  • 如果使用的是RTX3070显卡,则无需修改

其他显卡的pytorch支持版本请在下方链接中查找

Frameworks Support Matrix

权限问题

执行run.sh脚本的时候若出现如下报错:

Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: load library failed: libnvidia-ml.so.1: cannot open shared object file: no such file or directory: unknown

出现此问题大多是因为没有使用root权限运行容器,以下几种方案均可:

  • 在bash前加root
  • 切换至root用户
  • 将当前用户加入root组

若无法找到构建好的isaacgym镜像,则需重新以root权限构建镜像。

runtime问题

执行run.sh脚本的时候若出现如下报错:

docker: Error response from daemon: could not select device driver "" with capabilities:[[gpu]].

则需要安装nvidia-container-runtimenvidia-container-toolkit两个包,并修改Docker daemon 的启动参数,将默认的 Runtime修改为 nvidia-container-runtime:

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.list
sudo apt update
sudo apt install nvidia-container-toolkit nvidia-container-runtime
sudo vi /etc/docker/daemon.json

修改内容为

{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

重启docker服务:

systemctl restart docker