ubuntu16.04 && docker && nvidia-docker && python

1.安装

1.1 安装docker

在终端执行:
wget -qO- https://get.docker.com/ | sh
完成后,在终端执行:
sudo service docker start
sudo docker run hello-world
如出现下面的界面,说明docker安装成功。
这里写图片描述

1.2 安装nvidia-docker

在终端执行如下指令

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution= ( . / e t c / o s r e l e a s e ; e c h o ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update

sudo apt-get install -y nvidia-docker2
若出现如下图所示的错误,说明已安装的docker版本与nvidia-docker所需要的版本不一致。
这里写图片描述

上图表明当前的nvidia-docker需要18.03.1版本的docker,而此时安装的docker为18.05.0版本,因此需要对已安装的docker进行降级,需要进行以下操作:
apt-cache madison docker-ce
会出现如下图所示的结果,可以看到是包含18.03.1版本的docker的。
这里写图片描述

执行如下指令安装18.03.1版本的docker。
sudo apt-get install docker-ce=18.03.1~ce-0~ubuntu
注意:此处的版本号需要根据nvidia-docker的需要进行对应修改。

若未出现上述错误,则不需要进行操作。

继续执行如下指令:
sudo apt-get install -y nvidia-docker2

sudo pkill -SIGHUP dockerd

sudo docker run –runtime=nvidia –rm nvidia/cuda nvidia-smi

若出现如下图所示的显卡信息,则证明安装成功。
这里写图片描述

2.使用docker/nvidia-docker注意事项

在当前文件夹下执行指令生成镜像:
sudo nvidia-docker build -t ccf_facerecognition .
若出现libcuda.so找不到的问题,说明应该使用nvidia-docker而不是docker进行docker的生成。
注意Dockerfile文件必须在当前指令的执行路径下。

保存镜像:
sudo docker save -o ccf_facerecognition.rar ccf_facerecognition:latest

加载镜像文件:
sudo docker load –input ccf_facerecognition.rar

查看镜像:
sudo docker images

从镜像中生成容器:
sudo nvidia-docker run -p 5200:5000 -v /home/knight/dockerTest/Features:/CCF_FaceRecog/datasets/Features -v /home/knight/dockerTest/ini:/CCF_FaceRecog/datasets/ini -v /home/knight/dockerTest/Upload:/CCF_FaceRecog/datasets/UploadImages –restart=always ccf_facerecognition:latest python manage_server.py

-p 端口映射,宿主机端口:开放的容器端口
-v 路径映射,宿主机路径:容器路径
–restart=always 开机自启
ccf_facerecognition:latest 镜像名称
python manage_server.py 运行该py文件,这样写需要在Dockerfile的最后写成:

RUN mkdir -p /CCF_FaceRecog
WORKDIR /CCF_FaceRecog
COPY . /CCF_FaceRecog
CMD [“/bin/bash”]

而manage_server.py文件就放在容器中的/CCF_FaceRecog文件夹下。

如果Dockerfile的最后写成了:

CMD [“python”, “index.py”]
则启动容器后会自动执行index.py文件。

Dockerfile中要使用ENV PATH /opt/conda/bin:$PATH 指定通过anaconda安装的python的环境变量。

很多docker官方公布的基础镜像中可能会存在python的版本或者环境变量的冲突,此时,建议不要使用该基础镜像,而是使用pip install 或者conda install 或 apt-get install 自己安装所需的包。

猜你喜欢

转载自blog.csdn.net/cdknight_happy/article/details/80819413