zoukankan      html  css  js  c++  java
  • Docker 教程-HZAU特供版

    Docker是一个一键搭载代码运行环境的东西,相当于一个小型的系统,系统里面仅包含你的程序所需的运行环境,其他的什么东西都没有。

    在服务器中跑代码一般使用Docker,因为一个服务器中可能有两个以上的人在跑代码,他们的环境是互相冲突的,此时使用docker可以让他们的环境互不影响。而且docker有守护进程,可以解决长时间不操作跑代码的程序可能会被杀掉的问题。

    我们的服务器已经装好docker和显卡驱动了,下面告诉大家如何配置自己的docker并在服务器中跑起来。

    配置docker

    去dockerhub:https://hub.docker.com/ 找你需要的运行环境,以tensorflow gpu为例子

    搜索tensorflow

    找到第一个官方镜像点进去

    点击tags

    如果想用tensorflow 2 gpu的话 在tags中搜索2.0.1-gpu-py3

    在最右边有一个命令,复制下来在服务器上运行就好

    由于网络原因可能一次下载不全,这个时候运行几次听天由命吧,愿意折腾的话也可以换docker源,换源网上有教程,一搜就是这里就不赘述了。

    注意tf版本一定要和服务器的cuda版本像对应,我们服务器的cuda版本是cuda10.几

    由于代码运行环境可能不止tensorflow,可能还有matplotlib或者scipy之类的库,这时候就要自己动手配置一下了

    在服务器中,使用如下命令查看已安装的docker:docker image ls

     找到自己安装的那个docker 此处以tensorflow 1.13.2-gpu-py3举例

    运行如下命令启动docker 实例: docker run -it  tensorflow/tensorflow:1.13.2-gpu-py3 /bin/bash 

    此时会出现如下图像

    现在就相当于进入了一个小系统,在这里你可以自己安装所需要的环境

    安装好环境后,要将此环境保存下来,这时候需要另起一个窗口,此窗口不要关闭

    如下

     此时在新窗口中使用:docker commit 664a88267646 my_docker

    这样就把刚刚改好的664a88267646 永久保存为my_docker 了

    然后保存好的镜像应该可以用命令:docker image ls 看到

      最后 保留一个好习惯,不用的docker实例及时杀掉,在之前的那个窗口里面 输入:exit 

    退出docker 实例

     这里说一下镜像和实例的区别

    镜像用docker image ls就可以看到

     

    实例用docker ps可以看到

     在我们运行docker run -it  tensorflow/tensorflow:1.13.2-gpu-py3 /bin/bash 命令后  就会根据镜像tensorflow/tensorflow:1.13.2-gpu-py3创建一个实例

    一个镜像可以创建多个实例

    镜像相当于c++中的类,  实例就相当于类的实例。

    现在讲如何使用docker

    现将项目文件上传至服务器

    然后输入如下命令:  docker run --runtime=nvidia -p 5000:5000 -it  --ipc=host -v 你的项目文件夹路径:映射到docker中的路径  要用的镜像名称/bin/bash

    如下:docker run --runtime=nvidia -it  --ipc=host -v /home/cwuser3/feature_selection/12345/:/workspace   zxb_tf_matplt /bin/bash

    这样 在目录中就可以看到workspace文件夹 这里面就是你的项目文件夹,在这里面跑代码即可

    代码跑起来之后直接点击浏览器的×即可。

    现在跑了一天的代码,想看结果的时候

    登录服务器 运行docker ps 命令 找到自己正在跑的docker 的 id

    然后使用:docker attach  你的id就可以看到你代码的运行情况了

    在跑完代码后 保持一个好习惯 使用exit退出你的docker

    有时候忘了退也没关系,使用 docker kill 你的container id 也能退出docker。 但如果你错杀了师兄师姐的docker ,明天请自挂东南枝 

    有极小的概率,在关掉网页后你的python进程会被杀掉,

    可以使用nvidia-smi看显卡占用情况就知道自己的程序是否被杀掉了

    这时候使用docker attach 进入容器重新跑一遍就成。

  • 相关阅读:
    (转)Zipalign——Android apk优化工具
    (转)Android 数字证书详
    (转)ant深入浅出
    (转)Java调用Ant API用法
    (转)Java 代码调用ANT
    (转) Android如果对APK进行加密,提高反编译难度(思路)
    (转)Ant自动打包
    (转)Ant build.xml中的各种变量,使用系统环境变量
    (转)JAVA调用脚本
    (转)Android 编译,打包、签程名详细教
  • 原文地址:https://www.cnblogs.com/shensobaolibin/p/12425470.html
Copyright © 2011-2022 走看看