Docker开源以来,迅速风靡世界,对软件的开发、测试、部署、分发起到了很大变化。从logo也能看出来,docker就像一个集装箱一样,将软件打包分发,避免了“在我这运行没问题啊”的争吵。简单来说,docker以轻量化的尺寸,把操作系统、环境、依赖包、开发软件全都打包在一起,在一台新机器上可以快速、无损的复制出来。所以docker也用在云计算中作为基础调度单元。
不光对软件开发和,数据科学中也经常因为包的版本引发各种问题,掌握docker也成了数据科学家的必备技能。相比虚拟机,docker更加轻量。
基础概念 镜像 image最近刚好又在看龙珠,其实一个镜像的概念特别像龙珠里的“万能胶囊”。
容器 container容器就相当于“扔出去的万能胶囊”了,其本质是一个进程。另一方面,容器相当于实例化后的镜像。
例如linux中查看进程的命令ps(Process Status),查看容器的命令是docker ps
仓库就是图中存放万能胶囊的盒子了。
基本使用sudo docker build -f Dockerfile -t registry.cn-shenzhen.aliyuncs.com/yuetan/competition:01 . docker run -v /Users/longxingtan/Repository/Competition-gogogo/earth/data:/tcdata registry.cn-shenzhen.aliyuncs.com/yuetan/competition:01 docker push registry.cn-shenzhen.aliyuncs.com/yuetan/competition:01
拉取镜像:
docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:1.4-cuda10.1-py3调试
进入交互式容器
docker run -i -t registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:1.4-cuda10.1-py3 /bin/bash Cuda version: cat /usr/local/cuda/version.txt Cudnn version: nvcc --version pip install --upgrade pip pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.2.0进阶 GPU支持
对于数据科学而言,GPU的支持必不可少。
docker run --gpus all -it registry.cn-compose
进阶的使用首推compose了
Kubernetes在云计算中,就是k8s了
阿里云中的使用最近恰好水了一个天池的比赛,由于比赛需要docker提交,这里简单回顾一下,如何在天池比赛中提交。
- 创建阿里云代码仓库(https://www.aliyun.com/product/acr)使用Dockerfile创建镜像,容器化后安装requirements.txt,提交至阿里云仓库提交镜像
Manning.Learn.Docker.in.a.Month.of.Lunches.2020.6https://yeasy.gitbooks.io/docker_practice/bilibili:数据科学家dockerhttps://zhuanlan.zhihu.com/p/19902938https://zhuanlan.zhihu.com/p/147995194https://www.oreilly.com/radar/where-programming-ops-ai-and-the-cloud-are-headed-in-2021/实际项目的docker打包应用本地代码通过dockerfile打包成镜像,也可以参加类似天池相关比赛



