构建并进入 docker 容器后,我们进入下一步:
1. 退出/进入 docker 容器:
在进入 Docker 容器后,可使用组合键 Ctrl + P + Q 退出当前容器,同时不关闭该容器;
如需再次进入容器,可使用下述命令:
sudo nvidia-docker exec -it paddle_docker /bin/bash
可以看到,就像是普通的一个home环境。但是:之前在ubuntu安装的nccl并不能使用,还需要在容器中安装nccl(后面有空安装。。。。。)。
2. 安装paddleClas
git clone https://gitee.com/paddlepaddle/PaddleClas.git
3.安装 PaddleClas 及其 Python 依赖库
pip install paddleclas
如果报错如下,不影响。
4. 关闭容器,删除容器后,使用命令重新启动
sudo nvidia-docker run --name paddle_docker -it -p 2222:22 registry.baidubce.com/paddlepaddle/paddle:2.4.2-gpu-cuda11.7-cudnn8.4-trt8.4 /bin/bash
注意:和上次(一)中,启动容器不同,我们这次创建容器,加了端口映射。
-p 2222:22:表示将主机的2222端口映射到容器的22端口。
添加端口映射之后,以后就可以通过简单命令启动:sudo docker attach paddle_docker (也可以启动)。
5. 将本地数据挂载到docker中
要将本地的数据放入Docker容器中,您可以使用Docker的挂载功能。挂载允许您将本地文件或目录与容器内的文件或目录进行关联,以便在容器中访问本地数据。
以下是在运行Docker容器时如何挂载本地数据的步骤:
(1)确保您已经准备好要挂载的本地数据。假设您的本地数据位于 /path/to/local/data 目录下。
在运行Docker容器的命令中添加 -v 参数,指定挂载的路径。格式为:
-v /path/to/local/data:/path/in/container,其中:
/path/to/local/data 是本地数据的路径;
/path/in/container 是容器中的路径;
例如,假设您要将本地数据挂载到容器中的 /data 目录下,命令如下所示:
sudo nvidia-docker run --name paddle_docker -v /path/to/local/data:/data image_name
sudo nvidia-docker run --name paddle_docker -it -p 2222:22 -v /home/uvtec/Downloads/data_train:/home/data_train registry.baidubce.com/paddlepaddle/paddle:2.4.2-gpu-cuda11.7-cudnn8.4-trt8.4 /bin/bash
(注意!!!运行这行命令启动容器后,就会在本地位置和容器内,同时创建出对应的目录文件夹!但是,本地的位置没有权限,需要更改!)
增加权限的命令如下:
sudo chmod -R 777 /home/uvtec/Downloads/data_train
这将在启动容器时将本地数据目录 home/uvtec/Downloads/data_train 挂载到容器内的 /home/data_train 目录。在容器内部,您可以使用 /data 路径来访问挂载的本地数据。
通过这种方式,您可以在Docker容器中访问并使用本地数据进行模型训练。容器内的任何更改,都会反映在挂载的本地目录中,因此,您可以方便地在容器内外进行数据共享和同步。
请注意,在运行挂载命令时,确保本地路径和容器内路径的正确性,并具有适当的读写权限。