本文主要介绍 Docker 的基本使用
如有需要,可以参考
如有帮助,不忘 点赞 ❥
Docker 简介
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 应用场景
- Web 应用的自动化打包和发布
- 自动化测试和持续集成、发布
- 在服务型环境中部署和调整数据库或其他的后台应用
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
Docker 的优点
- 快速、一致地交付应用程序
- 响应式部署和扩展
- 在同一硬件上运行更多的工作负载
Docker 的三个核心
- 镜像(Image)
是创建容器的基础,类似虚拟机的快照
- 容器
从镜像创建的运行实例,它可以被启动、停止和删除。每个容器之间是相互隔离,互不可见,保证了平台的安全性
- 仓库
集中保存镜像的地方
上图便是 Docker 的 LOGO,也诠释了 Docker 的概念。
Docker 借鉴了集装箱的概念, Docker 便是用来运输软件和应用程序的。
Docker 架构
- Client
Docker 客户端。是许多 Docker 用户与 Docker 交互的主要方式,Docker 客户端可以与多个守护进程进行通信。 - Docker Daemon
Docker 守护程序。负责侦听 Docker API 请求并管理 Docker 对象,如 图像、容器、网络和卷。守护程序还可以与其他守护程序通信以管理Docker服务。 - Registry
Docker注册表存储Docker镜像。Docker Hub是任何人都可以使用的公共注册中心。
VM vs 容器
- 容器: 是一个应用层的抽象,用于将代码和依赖资源打包在一起,多个容器可以在同一台机器上运行,共享操作系统内核,但各自作为独立的进程在用户空间中运行 。与虚拟机相比, 容器占用的空间较少(容器镜像大小通常只有几十兆),瞬间就能完成启动。
- 虚拟机:是一个物理硬件层抽象,用于将一台服务器变成多台服务器。 管理程序允许多个VM在一台机器上运行。每个VM都包含一整套操作系统、一个或多个应用、必要的二进制文件和库资源,因此占用大量空间。
Docker 上手
一、 镜像操作
1. 列出镜像
语句: docker images
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
2. 查找镜像
语句: docker search ${image_name}
NAME:镜像仓库源的名称
DESCRIPTION:镜像的描述
starts:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否docker官方发布
auto commit:自动构建,表示该镜像由 Docker Hub 自动构建流程创建的
3. 拉取镜像
语句: docker pull i m a g e n a m e : {image_name}: imag