白面系列 docker
在讲docker之前,首先区分2个概念,容器和虚拟机。
容器:
虚拟机:
简单来说,容器虚拟化操作系统;虚拟机虚拟化硬件。
容器粒度更小更灵活;虚拟机包含资源更多更大。
docker就是用来做容器化的。
接着需要搞清楚3个东西:
- Image(镜像)
- Container(容器)
- Repository(仓库)
镜像是为了创建容器的只读模板。
容器是镜像的一个可运行实例。
仓库是用来存储镜像的。
从面向对象来理解,仓库==工程,镜像==类,容器==实例。
docker的架构是C/S。
Docker daemon负责执行容器的创建、运行和分布以及其他对象的管理。
图中有Container、Image,为什么没有Repository?看到Registry了嘛,一个Registry可以包含多个Repository。docker提供了公共仓库,即docker hub,https://hub.docker.com/search?q=&type=image ,这里可以找到很多image。
这样就知道怎么玩了:
- 从仓库pull一个镜像
- docker执行run方法得到一个容器
- 用户在容器里执行各种操作
- docker执行build将容器转换为镜像
- docker执行push等命令将镜像 push到仓库
- 别人就可以用这个新的镜像了
有3个文件需要说明一下,镜像文件,即image。容器文件,容器实例本身就是文件。dockerfile,生成image的配置文件。
最后列几个常用命令:
docker image ls # 列出本机的image docker image pull # 从仓库拉镜像 docker image build # 创建image文件 docker container run # 运行容器 docker container kill # 终止容器运行
参考文档:
https://www.docker.com/resources/what-container
http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
版权申明:本文为博主原创文章,转载请保留原文链接及作者。