深度学习中的docker容器使用

来源:互联网 发布:ipad广告拦截软件 编辑:程序博客网 时间:2024/06/05 16:24

what

Docker是一个可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。我感觉和虚拟机差不多, 但似乎比虚拟机强大很多(专业人士请不要打我). 它的应用也特别多, 似乎公司的前端也要迁移到docker上面. 我这个只简单的介绍了docker在深度学习中的应用, 算冰山中的一角的一角, 算自己的一个笔记. 专业人士专业问题就没必要继续看了哈.

why

先说为什么要使用docker容器, 最直接的原因是docker容器容易迁移, 不管是镜像和容器都可以迁移, 不需要多次重复安装深度学习中的各种软件(可能是人工智能最近发展迅猛, 有些软件安装特别麻烦, 包括版本和依赖, 不管是windows, 还是linux等). 可能的几个场景有:

  • 有多个服务器, 需要在不同的服务器跑模型
  • 自己系统重装
  • 公司来新的实习生, 需要装各种深度学习库
  • 另外也方便服务器的维护, 毕竟大家都在docker里面操作

docker install

docker有The Comunity Edition (CE)和 the Enterprise Edition (EE)版本, 一般安装CE就行. Windows应该是只要下载exe安装即可. linux系统以ubuntu16.04为例子:


  1. 设置docker容器:

  • sudo apt-get update
  • sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  • curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”
  • 安装Docker CE

    • sudo apt-get update
    • sudo apt-get install docker-ce
  • 确认是否安装成功

    sudo docker run hello-world

  • docker command

    1. docker pull images_name 从docker官网拉取已经编译好的镜像
    2. docker run -it -v test/:/workdir –name test_container docker_image_name –ipc=host bash 启动一个 叫test_container的容器,运行完后不删除容器
    3. docker run -it –rm -v test/:/workdir –name test_container docker_image_name –ipc=host bash 启动一个 叫test_container的容器,运行完后删除容器
    4. docker start 容器名称 启动容器
    5. docker attach 容器名称 连接容器
    6. docker rmi image_name 删除镜像
    7. docker rm container_name 删除容器
    8. docker images 查看本地安装的docker镜像有哪些
    9. sudo docker ps 查看docker在跑的有哪些容器
    10. sudo docker ps -a 查看在跑和没跑的容器

    其他命令可参考docker官网:https://docs.docker.com/

    docker jupyter

    1. docker run -it -v 自己文件路径/:/workdir –name test_container -p 9999:8888 镜像名称(或者id) bash
    2. jupyter notebook –allow-root 启动jupyter
    3. 一般是在服务器上启动docker,然后在本地浏览器中输入remote_ip:9999, remote是远程服务器的ip地址, 9999是启动docker的时候设置的端口号.然后刷新就可以使用了.