1
0
wiki/Tech/operating-system/Docker/基础/基础概念.md

38 lines
3.2 KiB
Markdown
Raw Normal View History

2024-02-20 17:06:15 +08:00
---
title: 基础概念
description: Docker 的基础概念
keywords:
- Docker
- 基础概念
tags:
- Docker/基础
2024-04-26 21:42:22 +08:00
- 技术/操作系统
2024-02-20 17:06:15 +08:00
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)