1
0
wiki/Technology/OperatingSystem/Docker/基础/基础概念.md
2024-08-30 12:29:55 +08:00

38 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 基础概念
description: Docker 的基础概念
keywords:
- Docker
- 基础概念
tags:
- Docker/基础
- 技术/操作系统
author: 仲平
date: 2024-02-20
---
Docker 是一个开源的容器化平台,它允许开发者打包应用及其依赖到一个可移植的容器中,然后在任何支持 Docker 的系统上运行这个容器。容器化技术使得应用从环境配置中解脱出来,增强了应用的可移植性、效率和安全性。
## Docker 核心概念
- **容器Containers**:容器是 Docker 的核心,可以被理解为一个轻量级、可执行的软件包,包含了运行某个应用所需的全部内容——代码、运行时环境、库、环境变量和配置文件等。你可以把容器想象成一个独立的小型计算机,它在一个隔离的环境中运行应用。
- **镜像Images**:镜像是创建 Docker 容器的模板。镜像是静态的包含了运行应用所需的代码、库、环境变量和配置文件。可以把镜像想象成容器的“蓝图”。创建容器时Docker 会从镜像中读取这些信息。
- **仓库Repositories**仓库是集中存放镜像的地方。Docker Hub 是最著名的公共仓库,但用户也可以创建私有仓库来存储和管理自己的镜像。
- **Dockerfile**Dockerfile 是一个文本文件,包含了一系列的指令和参数,用于自动化构建 Docker 镜像的过程。通过编写 Dockerfile开发者可以定义如何构建镜像包括添加文件、运行命令和配置环境等。
- **Docker Compose**Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件,你可以配置应用服务所需的所有容器,然后使用一个命令同时创建和启动所有这些容器。
## Docker 工作原理
Docker 使用容器来运行应用,容器运行在 Docker 引擎之上。Docker 引擎负责管理容器的生命周期,包括容器的创建、启动、停止、移动和删除。容器与虚拟机相比,占用的资源更少,启动更快,因为容器共享宿主机的内核,而不需要模拟整个操作系统。
## Docker 设计架构
**Docker 的架构主要基于客户端 - 服务器Client-Server模型**涉及几个关键组件Docker 客户端、Docker 服务器也称为守护进程、Docker 镜像、容器、仓库等。
- **Docker 客户端Client**Docker 客户端是用户与 Docker 交互的主要方式。用户通过运行 Docker 客户端命令来告诉 Docker 守护进程需要做什么。例如,构建镜像、运行容器、停止容器等操作都是通过客户端发起的。
- **Docker 服务器守护进程Daemon**Docker 守护进程运行在宿主机上,处理客户端发来的请求,如创建、运行、监控容器,构建和存储镜像等。守护进程与其他 Docker 守护进程通信,管理 Docker 服务。
Docker 客户端和守护进程可以在同一系统上运行,也可以将 Docker 客户端连接到远程 Docker 守护进程。 Docker 客户端和守护进程使用 REST API 通过 UNIX 套接字或网络接口进行通信。
![](https://static.7wate.com/2024/02/20/e41a6be58cc8343414a8632c578ab2cc-docker-architecture.webp)