---
url: https://eoht.net/fe/docker/install.md
description: >-
  本文介绍 Docker 的容器化原理、镜像、容器、仓库、客户端和守护进程等组成及常见应用场景，并提供 Linux 一键安装、systemd 启动以及
  Debian/Ubuntu 卸载命令，适合首次接触 Docker 的用户。
---

# Docker 是什么及如何安装：镜像、容器、启动与卸载 {#docker-introduction-and-installation}

Docker 是用于构建、分发和运行容器化应用的平台，可将应用与依赖打包为镜像，在开发、测试和生产环境中保持一致。本文先说明核心概念和组成，再给出 Linux 安装、启动与卸载命令。

## Docker 技术简介 {#docker-overview}

Docker 如日中天，这不是单纯的炒的概念，Docker 的确解决了开发和运维的痛点，比如版本的搬迁，从测试环境搬迁到预发、生产环境，在企业开发与测试中，得到了非常广泛的应用。

* Docker 是一个开放源码的软件项目，基于 GO 语言
* Docker 可以让开发打包他们的应用以及依赖包到一个轻量级、可移植的容器中
* Docker 打包好容器，可以发布到任何流行的 Linux 机器上，也可以实现虚拟化
* 容器是完全使用沙箱机制，互相之间不会有任何接口
* Docker 容器性能开销极低，这个才是关键
* Docker 使用客户端-服务器（C/S）架构模式，使用远程 API 来管理和创建 Docker 容器

## Docker 的应用场景 {#docker-use-cases}

1. Web 应用自动化打包和发布
2. 自动化测试和持续集成、发布
3. 在服务器环境中部署和调整数据库或其他的后台应用
4. 使用 Docker 可以实现开发环境、测试环境、生成环境的一致性

Docker 借鉴了标准的集装箱的概念。标准的集装箱将货物运往世界各地，Docker 将这个模型运行到自己的设计中。唯一不同的是: 集装箱是运输货物，Docker 是运输软件。

**Docker 和传统的 VM 的区别**

docker 与传统的 VM 对比:

1. 启动速度：vm 一般几十秒或者几分钟，docker 几秒或者毫秒
2. 大小：vm 一般几 G，docker 只有几兆

## Docker 的组成 {#docker-components}

Docker 需要分为三部分： `仓库`、 `镜像` `容器`

|                 |                                                                                                                                                          |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Docker 镜像     | Docker 镜像是用于创建 Docker 容器的模板。镜像是基于联合文件系统的一种层式结构，由一系列指令一步一步构建出来。                                            |
| Docker 容器     | 容器是独立运行的一个或多个应用。镜像相当于类，容易相当于类的实例                                                                                         |
| Docker 客户端   | Docker 客户端通过命令行或者其他工具使用 Docker API 与 Docker 的守护进程通信                                                                              |
| Docker 主机     | 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器                                                                                                     |
| Docker 守护进程 | 是 Docker 服务器端进程，负责支撑 Docker 容器的运行以及镜像的管理                                                                                         |
| Docker 仓库     | Docker 仓库用来保存镜像，可以理解为代码控制中的代码仓库。Docker Hub 提供了庞大的镜像集合供使用，用户也可以将自己本地的镜像推送到 Docker 仓库供其他人下载 |

## 一键安装 Docker {#one-command-docker-installation}

```sh
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
```

## 启动 Docker {#start-docker-service}

```sh
sudo systemctl enable docker
sudo systemctl start docker
```

## 卸载 Docker {#uninstall-docker}

```sh
sudo apt remove docker docker-engine docker.io containerd runc
```

继续了解：[Docker 容器常用操作](/fe/docker/container)、[Docker 镜像与容器操作教程](/fe/docker/mirror)和[Docker 国内镜像加速](/fe/docker/mirror-source)。
