docker学习 软件安装

1. 软件安装的三大步骤

本章将软件安装过程分解为三个关键流转环节,并围绕这些环节展开讨论:

  • 选择软件:确定需要安装什么软件及其版本,。
  • 定位镜像:寻找存储该软件镜像的仓库(如 Docker Hub 或其他注册服务器),。
  • 理解安装与隔离:分析安装了哪些文件以及这些文件如何在运行态实现隔离,。

2. 查找与获取软件

本章介绍了多种获取 Docker 镜像的方法,不仅限于默认的官方渠道,:

  • Docker Hub:作为默认的公共注册服务器和索引库,用户可以通过命令行(docker searchdocker pull)或网站访问来获取镜像,。
    docker search postgres
    

    搜寻postgres

docker run -it --rm dockerinaction/ch3_hunt

-i : 让你可以在容器里输入命令
-t : 让你看到像正常 shell 一样的交互界面
--rm : 容器退出后自动删除
  • 替代注册服务器:学习如何从第三方或私有的注册服务器下载镜像,。
  • 本地文件加载:使用 docker savedocker load 命令,通过压缩文件(如 .tar 归档文件)加载和导出镜像,这在没有网络设施的环境中非常有用,。
  • 从 Dockerfile 安装:利用 Dockerfile 描述镜像构建步骤并进行自动化分发。

3. 镜像的分层机制(Layers)

这是本章最重要的概念之一。镜像并非单一的庞大文件,而是镜像层的集合

  • 层级关系:镜像层之间存在父子依赖关系,。例如,许多镜像可能共同依赖于一个基础层(如 Java 或特定 Linux 发行版),这使得公共层仅需安装一次,。
  • 分层优点:这种结构提供了优秀的隔离工具,支持层的重复利用,显著节省了存储空间和分发时的带宽开销,。

4. 容器文件系统与隔离

  • 联合文件系统(Union File System):Docker 利用联合文件系统将多个镜像层挂载为一个统一的视图提供给容器,使程序对底层的分层结构一无所知。
  • 抽象与隔离:通过内核提供的 MNT 命名空间chroot 调用,Docker 为每个容器创建了独立的文件系统根目录和挂载点,确保容器内的进程无法干扰主机或其他容器的文件系统,。

比喻理解: 如果把容器比作一栋乐高积木房子,第3章就像是在教你如何查阅积木图纸。镜像层就是一层层的积木,你可以共用最底下的“地基”积木来盖不同的房子(节省材料);而联合文件系统就像是把这些积木严丝合缝拼在一起的胶水,让住在房子里的“进程”感觉自己住在一个完整的、独立的建筑里。