本文基于Ubuntu 18.04server LTS版本对docker进行基本操作(由于Ubuntu 18.04与16.04两者之间有许多不同之处,对很多方面进行了重写)。读者如果想要对Docker进行深入的学习,可以参考官方文档https://docs.docker.com/engine/docker-overview/。
1. Docker简介
Docker是开发人员和系统管理员 使用容器开发,部署和运行应用程序的平台。使用Linux容器部署应用程序称为容器化。容器不是新的,但它们用于轻松部署应用程序。
2. 为什么用Docker?
以上不做详细解释,不过在这里Docker与传统虚拟机做一下比较:
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为 MB | 一般为 GB |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
3. Docker基本概念
Docker包括三个基本概念:
- 镜像(images)
- 容器(container)
- 仓库(registry)
Docker的系统架构:
Docker 容器通过 Docker 镜像来创建的,可以发现容器与镜像的关系类似于面向对象编程中的对象与类。
即
Docker | 面向对象 |
---|---|
镜像(images) | 类 |
容器(container) | 对象 |
Docker 引擎(官网文档)
Docker Engine是一个客户端 - 服务器应用程序,包含以下主要组件:
-
服务器,是一种长时间运行的程序,称为守护程序进程( daemon进程)。
-
一个REST API,它指定程序可以用来与守护进程通信并指示它做什么的接口。
-
命令行界面(CLI)客户端(
docker
命令)
Dcoker仓库
镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry
就是这样的服务。
Dcoker Registry有分为 公有Docker Registry 和私有 Docker Registry。