第1章 初识Docker
📖1.1 Docker 概念
Docker
是容器化技术,可以轻松地创建、部署和运行应用程序和服务。允许你将应用程序及其所有依赖项打包到一个称为容器的封闭单元中。
这些容器可以在任何支持 Docker
的环境中运行,无论是在开发者的本地计算机上、测试环境中还是生产服务器上,都能够保持一致性和可移植性。
✅Docker 的发展
起源:dotCloud 公司:
Docker
的故事始于 dotCloud 公司,一家云计算服务提供商。Docker 的创始人 Solomon Hykes 最初开发Docker
作为内部项目,旨在解决 dotCloud 内部的应用程序部署和扩展性问题。该项目最初被称为"dotCloud"。开源发布: 2013 年初,首次公开发布,并以开源许可证(
Apache License 2.0
)的形式向社区开放。这一举动受到了开发者社区的热烈欢迎,因为Docker
提供了一种全新的轻量级容器化方法,可以加速应用程序的开发、测试和部署。Docker 1.0 版本(2014年):Docker 1.0 版本发布,标志着 Docker 的正式稳定版本。这个版本的发布奠定了 Docker 的基础,并吸引了更多的用户和贡献者。
Docker Hub 和生态系统的发展:Docker Hub(2014 年)是 Docker 镜像的中央仓库,允许用户共享和拉取容器镜像。Docker 生态系统也开始形成,包括容器编排工具(如 Docker Compose 和 Docker Swarm)以及监控、日志和安全工具。
Docker Compose 和多主机编排(2015年):Docker Compose 允许用户使用 YAML 文件定义多个容器的关系,并一键启动整个应用程序栈。Docker Swarm 也发布,使用户能够管理多个 Docker 主机上的容器集群。
容器编排的竞争与 Kubernetes 的崛起(2015 年以后):Docker 和 Kubernetes 之间的竞争加剧,Kubernetes 于 2014 年由 Google 开源,成为容器编排的事实标准。Docker 还推出了 Docker Compose 堆栈文件来支持多容器服务的定义,这与 Docker Compose 兼容。
Docker Inc. 公司的成立(2015年):Docker Inc. 公司成立,专注于 Docker 技术的发展和商业化,提供了 Docker 企业版(Docker EE)以及支持和培训服务。
Docker CE 和 Docker EE(2017年):Docker 分为社区版(Docker CE)和企业版(Docker EE)。社区版是免费的开源版本,而企业版提供了更多的安全性和支持选项。
Docker 的发展与生态系统(2020 年以后):Docker 持续发展,增加了新的功能和改进,如 Docker Desktop、Docker Compose v2 和容器的根层文件系统改进。Docker 生态系统也继续壮大,为容器技术的广泛应用提供了支持。
📖1.2 安装 Docker
Docker可以运行在MAC
、Windows
、CentOS
、UBUNTU
等操作系统上,本节基于CentOS 7
安装Docker
。
✅准备工作
#更新yum 包
yum update
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
# 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
✅安装docker
出现输入的界面都按 y
yum install -y docker-ce
✅查看docker版本
docker -v
✅设置开机自动启动
systemctl enable docker
✅启动docker
systemctl start docker
配置镜像加速器
阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中 镜像加速器就可以看到你的专属地址了:
📖1.3 docker 架构
Docker 包括三个基本概念:
- 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
- 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
- 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker | 面对对象 |
---|---|
容器 | 对象 |
镜像 | 类 |