1. 配置Docker用于深度学习
作者:zxcwangcui , Lu进行了修订
Docker 提供操作系统级别虚拟化的容器,它可以无视基础的差异,部署到任何地方。
在 MPU 提供的 shine-cluster 中,我们可以使用 rootless docker 构建用户指定的系统环境。
注意
目前服务器对 Docker 的支持是有争议的。目前的讨论意见倾向于支持无GPU的Docker,以避免一系列的使用和维护问题。
1.1. 服务器上配置docker
进入登录节点,如Aha:

进入计算节点(我这里进入的是dagobah)
sit -g

第一次运行,没有安装过docker容器说明。
要允许用户单元到start at boot,root必须为帐户启用逗留,即sudo loginctl enable-linger username.
进入/opt/docker/bin目录并执行安装命令
loginctl enable-linger $USER
dockerd-rootless-setuptool.sh install
通常会返回两个路径。有两个选项:
每次手动输入这两个路径。
或者直接写入bashrc的环境变量里面
vim .bashrc
loginctl enable-linger $USER
export PATH=???
export DOCKER_HOST=???
1.2. dockers的使用
1.2.1. docker(container)的常用命令
这是一个链接 docker常用的命令查询网址
docker容器的列表:
docker ps [OPTIONS]
docker ps -a
开启dockers容器:
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker start attach my_container
重新开启一个或者多个容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]
docker restart my_container
运行一个命令进入容器,运动容器的两种写法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker container exec -it my_container /bin/bash
docker attach my_container
停止一个或者多个正在运行的程序:example:停止docker容器(三种方式,任选其一)
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker container stop trackformer
docker stop my_container
exit
ctrl + p + q
创建并运行容器:创建容器并继承image镜像的东西, 根据需求可以有N种写法,申请gpu
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run -dit --name=my_container ubuntu:18.04 --gpus
docker run --name my_container u18.04c:v1 --gpus
docker create -i -t --name my_container u18.04c:v1 --gpus
docker run --name my_container --rm -i -t ubuntu bash --gpus
删除docker容器:两种写法(container的名称或ID)
docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rm 9e81183e5ec1
docker rm /redis
1.2.2. 管理镜像的常用命令 镜像(images)的常用命令
查看镜像列表:docker images
docker image COMMAND
docker images
拉取ubuntu18.04镜像: 这里是最小化的系统镜像包
docker pull ubuntu:18.04
根据容器container创建一个新的镜像打包:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit -a 作者 容器id 容器名: 容器标签
docker commit -a cui -m "complete u18.04" cbe37b45a22c u18.04c:v1
删除image镜像:
docker image rm [OPTIONS] IMAGE [IMAGE...]
docker image rm 5a5c46a1ad43
1.2.3. 配置自己的dockers
拉取ubuntu18.04镜像: (这里是最小化的系统镜像包)
docker pull ubuntu:18.04
创建并运行容器,继承image镜像。并挂载文件夹路径:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run --name yolox_container -ti -v /home/wangcui/shared:/shared_disk --gpus all ubuntu:18.04 /bin/bash
docker run --name yolox_container -ti -v /home/wangcui/shared:/shared_disk --gpus all ubuntu:18.04 /bin/bash
安装完整版的ubuntu 非最小化处理
unminimize
sudo apt update && sudo apt full-upgrade
apt install vim
sudo passwd
1.3. 配置机器学习环境
miniconda:安装miniconda3,bash [上述文件][.sh](http://xxx.sh)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
完成后重启容器
docker restart my_container
进入到conda安装路径,然后激活环境conda环境:
source /opt/miniconda/bin/activate
安装git工具
sudo apt install git
获取github项目的例子
git clone [https://github.com/megvii-model/MOTR.git](https://github.com/megvii-model/MOTR.git)
安装conda的开发运行版本,优势conda-forge一般是最新的版本
conda install -c conda-forge cudatoolkit-dev
如何安装最新的 pip 和 setuptools
pip install --upgrade pip setuptools wheel
安装c++的环境,这个包里面有dpkg-dev fakeroot g++ g++-4.6 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libstdc++6-4.6-dev libtimedate-perl
sudo apt-get install build-essential
1.3.1. 安装自己的虚拟环境
安装虚拟环境
conda create -n trackformer
激活虚拟环境:
conda activate trackformer
安装pytorch
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch