Docker 官方教程笔记(1) 入门

0. 前言

  • 教程链接
  • 本文内容主要包括
    • Docker基本概念:Docker是什么,能做什么
    • Docker的组成:从程序实现角度看、从用户使用角度看

1. Docker 基本概念

1.1. Docker 是什么

  • Docke主要用于于应用环境的开发、迁移、运行。
  • Docker可以令不同应用有不同的环境,方便开发与部署。
  • 对我来说帮助比较大的解释是:
    • 发布的时候,不仅发布程序,也发布环境。

1.2. Docker能做什么

  • 提供了“容器”功能
    • 未不同的程序提供不同的环境,每个环境就是一个“容器”
    • “容器”这个词很好的体现了多个环境之间是相互隔离的
    • 容器提供的功能与“虚拟机”类似,可以理解为“轻量化”的虚拟机。具体细节我也不懂,也没打算细看。
  • 我为什么要学Docker(算法工程师日常工作中的Docker)
    • 多人用同一台服务器时,如果需要用不同的cuda版本,就会很麻烦。虽然conda提供了不同环境的cuda,但其实还是有问题的。
    • 其实各种软件的安装真的是老大难问题,比如不同版本的opencv啥的……

2. Docker 组成

2.1. Docker Engine

  • 从程序实现角度看,Docker分层如下图所示(官方配图)

img

  • Server:长时间运行的守护进程,其他
  • REST API:定义了与守护进程通信的接口。
  • Client(docker CLI):命令行工具,调用了REST API。
  • Objects:container、image、network、data volumes

2.2. Docker architecture

  • 从使用角度看,Docker分为以下几个部分(官方配图)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SYzEjBha-1610864978881)(https://zhangyiyang-blog.oss-cn-hangzhou.aliyuncs.com/20210116223209.svg)]

  • 其中几个主要组件介绍如下
    • Client:用户工具,通过与Docker daemon通信从而控制各个Objects的
    • Docker Host
      • Docker daemon:守护进程,client就是通过与守护进程通信,达到控制容器、镜像的目的。
      • 容器、镜像:后面介绍
    • Registry:镜像仓库
  • 镜像与容器单独介绍
    • 推荐看看 这篇博客
    • 镜像:
      • Docker中的镜像是只读
      • Docker中的镜像一般是有层次结构的,即一个镜像一般都要依赖于其他一系列镜像
      • 我们可以直接从镜像仓库中获取已有镜像,也可以通过Dockerfile来自行创建。
      • Dockerfile的每一行就会创建一个镜像,在重复运行同一个Dockerfile时,只会从修改了的那一行开始重新运行。
    • 容器:
      • 可运行的容器,可以新建、启动、停止、移动、删除一个容器。
      • 默认情况下,每个容器之间是相互独立的。
      • 一个容器是通过对应镜像以及相关配置信息组成的,删除了容器后就会删除其相关配置。
      • 容器大概就是在镜像层(只读层)上面加了一层读写层。

3. 其他

  • docker run 命令举例,以后详细看,现在不关心。

  • 官方教程还介绍了底层技术(underlying technology),不关心,没细看。

猜你喜欢

转载自blog.csdn.net/irving512/article/details/112743919