白面系列 docker

在讲docker之前,首先区分2个概念,容器和虚拟机。
容器:
白面系列 docker
虚拟机:
白面系列 docker

简单来说,容器虚拟化操作系统;虚拟机虚拟化硬件。

容器粒度更小更灵活;虚拟机包含资源更多更大。

docker就是用来做容器化的。

接着需要搞清楚3个东西:

  • Image(镜像)
  • Container(容器)
  • Repository(仓库)

镜像是为了创建容器的只读模板。

容器是镜像的一个可运行实例。

仓库是用来存储镜像的。

从面向对象来理解,仓库==工程,镜像==类,容器==实例。

docker的架构是C/S。

Docker daemon负责执行容器的创建、运行和分布以及其他对象的管理。

白面系列 docker

图中有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

版权申明:本文为博主原创文章,转载请保留原文链接及作者。