这篇文章主要介绍 docker 基本概念和使用方法。
useful link for docker:
why docker?
我认为 docker 还是为了处理我电脑上能跑你电脑上跑不起来这种情况,你在容器里跑起来测试通过后,就可以 打包出一个 image,别人使用这个 image 创造出一个container 后就可以立刻跑起来,不用担心环境搭建的问题。
比如说英伟达版本不一样 即使python anaconda 环境都一样了最后也有可能不一样就很离谱的。但是我数据要是很多?
给自己代码添加 docker 支持
- 先 pull 一个镜像来,其中包括了绝大多数需要的包,比如从 nvidia / pytorch 中拉过来,
- 编写 dockerfile ,加上运行需要的环境
- docker run
如果觉得麻烦,就直接制作一个新的 image 但是只有你自己知道做了什么操作,还是很不好的。。。
Docker 基础知识
- Docker image:一个镜像,类似于一台电脑的一个快照 snapshot
- Container:一个镜像的实例,运行态
- Dockerfile: 使用 Dockerfile 定制自己的镜像,有许多指令 FROM RUN ARG 等等
Docker 安装和配置
- 下载 docker
- 检查一下是否安装成功
docker --versionsudo 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:
| args | for what |
|---|---|
| -it | iterativate |
| -rm | remove when off |
| -d | -detach |
| .. | .. |
later:
- 本机数据与 docker 数据同步 (数据卷的使用和管理 挂载主机目录和文件)
- 如果保存自己的镜像
- Docker Compose 学习
- Compose 的作用和用途
- Compose 文件的编写和语法
- 使用 Compose 运行多个容器的应用
- Docker 网络