Mr. Panda
Tech For Fun

[运维] Docker 技术入门基础 (2) - Docker 容器安装部署与镜像管理

这篇文章是Docker技术入门基础的一部分,包括Docker安装方法、常用docker命令、docker镜像特性与docker管理基础等内容。本节的学习目标是理解镜像、容器和仓库的关系,使用常用的docker命令来管理docker镜像和容器,完成各种基础的docker操作。

关于Docker安装

  • 下载方式:从官网下载或者从GitHub源码构建。Download and install Docker
  • Docker版本:企业版(EE)和社区版(CE)。
  • 支持OS:Linux、Windows、OSX
  • 版本号:遵循YY.MM-xx格式,类似于Ubuntu等项目。17年之前遵循大版本号和小版本号格式。

常用docker命令

  • docker info:查看docker信息
  • docker run ~:启动docker镜像,-p映射端口,-v挂载数据卷,-e传递环境变量
  • docker version:查看docker 版本
  • docker pull ~:拉取镜像
  • docker help:查看帮助
  • docker stop ~:停止容器
  • docker restart ~:重启容器
  • docker rm:删除容器
  • docker commit ~:将容器的状态保存为镜像
  • docker images:查看所有镜像的列表
  • docker search ~:在registry中查找镜像
  • docker history ~:查看镜像的历史版本
  • docker push ~:将镜像推送到registry
  • docker ps -a:列出本地容器的全部进程
  • docker exec -ti ~ /bin/bash:进入容器并挂载终端
  • docker save ~ > name:导出镜像到本地磁盘
  • docker load:从本地磁盘导入镜像
  • docker logs -f ~:打印运行日志,-f 动态输出

更多命令参考:Docker 命令大全

docker 的三个核心概念:

  1. 镜像(image):一个Linux的文件系统。
  2. 容器(container):一个独立于宿主机的隔离进程,并且有属于容器自己的网络和命名空间。
  3. 仓库(repo):集中存储镜像的地方。

镜像、容器和仓库的关系:

镜像的结构:

registry名称/repo名称/镜像名称:tag名称

镜像特性:

  • docker镜像位于bootfs之上,其中第2层镜像为Base Image,每一层镜像与下层的镜像是父子关系。
  • 所有的image层都是readonly的,只有位于顶层的container是可读可写的。

容器的生命周期:

  • 检查本地是否存在镜像,如果不存在即从远端仓库检索
  • 利用镜像启动容器
  • 分配一个文件系统,并在只读的镜像层外挂载一层可读写层
  • 从宿主机配置的网桥接口中桥接一个虚拟接口到容器
  • 从地址池配置一个ip地址给容器
  • 执行用户指定的指令
  • 执行完毕后容器终止

docker run 来创建容器时,会运行容器的生命周期。

容器的生命周期,created/paused/stopped/running/killed。

镜像的实现原理

Docker 镜像是怎么实现增量的修改和维护的? 每个镜像都由很多层次构成,Docker 使用 Union FS 将这些不同的层结合到一个镜像中去。

通常 Union FS 有两个用途, 一方面可以实现不借助 LVM、RAID 将多个 disk 挂到同一个目录下,另一个更常用的就是将一个只读的分支和一个可写的分支联合在一起,Live CD 正是基于此方法可以允许在镜像不变的基础上允许用户在其上进行一些写操作。 Docker 在 AUFS 上构建的容器也是利用了类似的原理。

参考链接

#
首页      技术      [运维] Docker 技术入门基础 (2) - Docker 容器安装部署与镜像管理
jonsam ng

jonsam ng

文章作者

海阔凭鱼跃,天高任鸟飞。

[运维] Docker 技术入门基础 (2) - Docker 容器安装部署与镜像管理
这篇文章是Docker技术入门基础的一部分,包括Docker安装方法、常用docker命令、docker镜像特性与docker管理基础等内容。本节的学习目标是理解镜像、容器和仓库的关系,使用常用的docker命…
扫描二维码继续阅读
2021-05-31