在docker里同时集成cuda,tensorflow和vnc[搞事情.jpg]

看这个标题,就是要在docker里处理视频做计算……

目录

首先,必要的服务器配置说明:

1 从DockerHub下载你需要的cuda和cudnn版本对应的镜像。

2 安装tensorflow1.14和各种python包。

3 安装vnc

TIPS


 

首先,必要的服务器配置说明:

Ubuntu 18.04

gpu(已经安装好驱动)

docker

接下来是搞事情阶段:

【我曾完美找到了安装好nvidia 的镜像,安装好tensorflow1.14的镜像和安装好vnc的镜像,如果能组合到一起多好多简单啊。。。是我想多了。只能手动一层层盖楼】

1 从DockerHub下载你需要的cuda和cudnn版本对应的镜像。

(当初搞docker就是因为服务器的cuda和cudnn版本各种问题,本来好好的cuda10.0和cudnn7.6.4组合,多好的组合啊!然鹅代码不这么觉得。所以就找cuda10.0.130;cudnn7.6.3.30。)

在dockerHub找到nvidia的仓库,找tag是10.0-cudnn7-runtime-ubuntu16.04 的那个。

docker pull nvidia/cuda:10.0-cudnn7-runtime-ubuntu16.04

2 安装tensorflow1.14和各种python包。

当初找到的tensorflow官方镜像 ,里面有cuda10.0;cudnn7.4.1.5-1,但是只有tensorflow及其依赖包,算了。

docker pull tensorflow/tensorflow:1.14.0-gpu-py3

那么就开始我的手写dockerfile操作了

RUN APT_INSTALL="apt-get install -y --no-install-recommends" && \
    PIP_INSTALL="python3 -m pip --no-cache-dir install --upgrade" && \

    rm -rf /var/lib/apt/lists/* \
           /etc/apt/sources.list.d/cuda.list \
           /etc/apt/sources.list.d/nvidia-ml.list && \

    apt-get update && \

# ==================================================================
# tools
# ------------------------------------------------------------------

    DEBIAN_FRONTEND=noninteractive $APT_INSTALL \
        build-essential \        
        libsm6 \
        libxext6 \
        libxrender-dev \
        libglib2.0-0 \
        libssl-dev && \

    cd /root/cmake && \
    ./bootstrap && \
    make -j"$(nproc)" install && \
# ==================================================================
# python
# ------------------------------------------------------------------

    DEBIAN_FRONTEND=noninteractive $APT_INSTALL \
        software-properties-common \
        && \
    add-apt-repository ppa:deadsnakes/ppa && \
    apt-get update && \
        DEBIAN_FRONTEND=noninteractive $APT_INSTALL \
        python3.6 \
        python3.6-dev \
        python3-distutils-extra \
        python3-venv python3-setuptools \
        protobuf-compiler python-pil python-lxml python-tk \
        && \
#       get-pip.py is downloaded
#  python3.6 ~/get-pip.py && \
    ln -s /usr/bin/python3.6 /usr/local/bin/python3 && \
    ln -s /usr/bin/python3.6 /usr/local/bin/python && \
    cd /root/ && \
    tar -zxvf pip-19.3.1.tar.gz && \
    cd pip-19.3.1 && \
    python3 setup.py install && \
    pip install /root/numpy-1.16.5-cp36-cp36m-manylinux1_x86_64.whl && \
    pip install /root/scipy-1.2.2-cp36-cp36m-manylinux1_x86_64.whl && \
    pip install /root/opencv_python-4.1.1.26-cp36-cp36m-manylinux1_x86_64.whl && \
    pip install matplotlib==3.1.1 -i https://mirrors.aliyun.com/pypi/simple/ && \
    pip install /root/Pillow-6.2.0-cp36-cp36m-manylinux1_x86_64.whl && \
    pip install /root/Cython-0.29.13-cp36-cp36m-manylinux1_x86_64.whl && \

# ==================================================================
# tensorflow
# ------------------------------------------------------------------

    pip install tensorflow-gpu==1.14.0 -i https://mirrors.aliyun.com/pypi/simple/ && \
# ==================================================================
# config & cleanup
# ------------------------------------------------------------------

    ldconfig && \
    apt-get clean && \
    apt-get autoremove && \
    rm -rf /var/lib/apt/lists/* /tmp/* /root/*

因为网速的原因,某些包我已经提前手动下载好,等着安装。不然老是build失败,太折磨人。比如cmake,pip,numpy等。

tensorflow的版本也不能随便写,和cuda,cudnn版本有对应关系的,详情见此:https://www.tensorflow.org/install/source#tested_build_configurations

这一段也是我从别人那复制过来,改了又改。如果有人看到原版欢迎留言,因为我忘了复制哪的==

3 安装vnc

仍旧先贴上别人的成品,网上有很多创建好的镜像,我就挑了一个dockerfile看起来很简单的,方便盖楼。https://github.com/tyson-swetnam/ubuntu-xfce-vnc

打开链接就能看到dockerfile的内容啦,这里就不贴出来了,根据自己的情况删删改改就能直接用,而且是一次成功!为大佬的dockerfile点赞。

END

TIPS

docker build时遇到的问题

问题背景:在dockerfile中修改了apt更新的源为aliyun,第一次build的时候没报这方面的问题,但是后续修改dockerfile再build的时候就开始报错“Temporary failure resolving 'mirrors.aliyun.com'”。

在dockerfile里改添加nameserver也没用。

经测试,在docker build后添加--network=host即可,参考自:https://www.v2ex.com/t/575898

有知道具体原因的大佬欢迎留言,还望不吝赐教。

用docker run启动的时候,记得要加--runtime=nvidia,不然可能会识别不到gpu,导致报错。

写出来怎么这么短,唉……

等我整理一下把所有东西打个包放GitHub供起来。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值