这篇文章主要介绍 docker 基本概念和使用方法。

useful link for docker:

why docker?

我认为 docker 还是为了处理我电脑上能跑你电脑上跑不起来这种情况,你在容器里跑起来测试通过后,就可以 打包出一个 image,别人使用这个 image 创造出一个container 后就可以立刻跑起来,不用担心环境搭建的问题。

比如说英伟达版本不一样 即使python anaconda 环境都一样了最后也有可能不一样就很离谱的。但是我数据要是很多?

给自己代码添加 docker 支持

  1. 先 pull 一个镜像来,其中包括了绝大多数需要的包,比如从 nvidia / pytorch 中拉过来,
  2. 编写 dockerfile ,加上运行需要的环境
  3. docker run

如果觉得麻烦,就直接制作一个新的 image 但是只有你自己知道做了什么操作,还是很不好的。。。

Docker 基础知识

  • Docker image:一个镜像,类似于一台电脑的一个快照 snapshot
  • Container:一个镜像的实例,运行态
  • Dockerfile: 使用 Dockerfile 定制自己的镜像,有许多指令 FROM RUN ARG 等等

Docker 安装和配置

  • 下载 docker
  • 检查一下是否安装成功
    • docker --version
    • sudo docker run hello-world
  • 如果需要使用 GPU 需要额外装一下英伟达的docker

Docker 镜像

  • 列出现有镜像 docker image ls
  • 列出现有container docker container ls
  • 从dockerhub 中拷一个镜像过来 docker pull <:tag>
  • 查看现在正在运行的docker container docker ps

Docker run

example: docker run --gpus all --rm -ti --ipc=host pytorch/pytorch:latest docker run [image:tag]

有许多 args:

argsfor what
-ititerativate
-rmremove when off
-d-detach
....

later:

  1. 本机数据与 docker 数据同步 (数据卷的使用和管理 挂载主机目录和文件)
  2. 如果保存自己的镜像
  3. Docker Compose 学习
    • Compose 的作用和用途
    • Compose 文件的编写和语法
    • 使用 Compose 运行多个容器的应用
  4. Docker 网络

Docker 容器

Docker - HUB

nvidia-pytorch