Docker

目录

[一、Docker 核心概念](#一、Docker 核心概念)

[二,Docker 优势](#二,Docker 优势)

三,Docker架构以及组件

3.1、核心模块及组件

3.2、组件交互逻辑

[四,Docker 安装与配置](#四,Docker 安装与配置)

[步骤 1:创建 Docker 配置目录](#步骤 1:创建 Docker 配置目录)

[步骤 2:写入华为云加速器配置文件](#步骤 2:写入华为云加速器配置文件)

[步骤 3:重启 Docker 服务使配置生效](#步骤 3:重启 Docker 服务使配置生效)


前言

Docker 是一个开源的容器化平台 ,让开发者可以将应用程序及其依赖项打包到一个轻量级、可移植的容器中,然后发布到任何支持 Docker 的机器上,实现一次构建、到处运行。它解决了开发环境与生产环境不一致、依赖冲突、部署复杂等问题,是现代软件开发和 DevOps 流程的核心工具之一。

一、Docker 核心概念

  1. 镜像(Image)

    • 镜像是一个只读的模板,包含了运行应用所需的代码、运行时、库、环境变量和配置文件等。
    • 例如:一个 ubuntu 镜像就是一个包含 Ubuntu 操作系统的模板,一个 nginx 镜像就是预装了 Nginx 服务器的模板。
    • 镜像通过 Dockerfile 构建,支持分层存储(层复用,减少冗余)。
  2. 容器(Container)

    • 容器是镜像的运行实例,是一个独立的、可执行的软件包(镜像 + 运行时环境)。
    • 容器基于镜像创建,支持启动、停止、删除、暂停等操作,彼此隔离(通过 Linux 命名空间、cgroup 等技术)。
    • 例如:运行 docker run nginx 会基于 nginx 镜像创建并启动一个 Nginx 容器。
  3. 仓库(Repository)

    • 仓库是用于存储和分发 Docker 镜像的地方,类似代码仓库(如 GitHub)。
    • Docker Hub:官方公共仓库,包含大量官方镜像(如 Ubuntu、Nginx、MySQL 等)。
    • 私有仓库:企业或个人搭建的私有镜像仓库(如 Docker Registry、Harbor)。
  4. Docker 引擎(Docker Engine)

    • Docker 的核心运行组件,包含:
      • 守护进程(dockerd):后台服务,负责管理镜像、容器等资源。
      • CLI 客户端(docker):用户通过命令行与 dockerd 交互。
      • REST API:支持编程方式调用 Docker 功能。

二,Docker 优势

  1. 轻量级:容器基于宿主机内核,无需模拟操作系统,启动速度快(毫秒级),资源占用少。
  2. 可移植性:容器可在任何支持 Docker 的平台(Linux、Windows、macOS)上运行,环境一致性高。
  3. 隔离性:容器间通过命名空间和 cgroup 实现资源隔离,互不干扰。
  4. 易扩展:结合 Docker Compose、Kubernetes 等工具,可快速实现应用的集群部署和扩缩容。

三,Docker****架构以及组件

3.1、核心模块及组件

  1. Client(客户端)

    • 是用户与 Docker 交互的入口,通过docker build(构建镜像)、docker pull(拉取镜像)、docker run(启动容器)等命令,将操作请求发送给 Docker 守护进程。
  2. **Docker Host(Docker 主机)**是 Docker 的运行环境,包含 3 个核心组件:

    • Docker daemon(守护进程):Docker 的核心服务,负责接收 / 处理客户端请求,管理镜像、容器等资源的全生命周期。
    • Images(镜像):只读的应用模板,包含运行应用所需的代码、依赖、环境配置等,可从仓库拉取或本地构建。
    • Containers(容器):镜像的运行实例,是独立的可执行环境,基于镜像创建,支持启动、停止、删除等操作。
  3. **Registry(镜像仓库)**是存储、分发 Docker 镜像的平台(典型如官方的 Docker Hub),Docker 守护进程可从仓库拉取镜像到本地,也可将本地构建的镜像推送至仓库共享。

3.2、组件交互逻辑

以常见操作为例:

  • 执行docker pull:客户端将请求发给 Docker daemon → daemon 从 Registry 拉取镜像,存储到本地 Images 中;
  • 执行docker run:客户端发送请求 → daemon 基于本地 Images 创建并启动 Containers。

该架构是 Docker"一次构建、到处运行" 特性的基础:通过镜像的标准化封装、仓库的分发能力,结合容器的隔离性,实现了应用跨环境的一致性部署。

四,Docker****安装与配置

关闭防火墙等增强服务

安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

设置阿里云镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker-CE 并设置为开机自动启动
yum install -y docker-ce-20.10.18 docker-ce-cli-20.10.18 containerd.io
(指定20版本)
systemctl start docker.service
systemctl enable docker.service
docker info :查看 Docker 系统信息。
镜像加速下载

  1. 添加阿里云 Docker 源的意义Docker 官方软件源部署在国外,国内服务器直接访问时,下载速度会很慢(甚至因网络问题无法连接)。而阿里云是国内的镜像源,用它替代官方源,能大幅提升 Docker 安装包的下载速度,同时保证安装包的安全性和完整性。

  2. 指定 Docker 版本安装的意义不同版本的 Docker 在功能、兼容性上存在差异:

  • 避免安装 "最新版" 可能带来的兼容性问题;
  • 确保多台服务器 / 环境的 Docker 版本一致,方便后续的集群管理、问题排查。
  1. 配置华为云镜像加速器的意义 Docker 拉取镜像(比如nginxmysql等)默认从 "Docker Hub"(国外镜像仓库)拉取,国内网络下这个过程会非常慢。华为云镜像加速器是国内的镜像缓存服务,配置后 Docker 会优先从国内缓存拉取镜像,能把拉取时间从 "几分钟" 缩短到 "几秒",大幅提升镜像获取效率。

步骤 1:创建 Docker 配置目录

首先执行命令创建 Docker 的配置目录(确保目录存在):

复制代码
mkdir -p /etc/docker

步骤 2:写入华为云加速器配置文件

执行以下命令,将加速器配置写入 Docker 的核心配置文件daemon.json

复制代码
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://0a40cefd360026b40f39c00627fa6f20.mirror.swr.myhuaweicloud.com"]
}
EOF

步骤 3:重启 Docker 服务使配置生效

配置文件修改后,需重新加载 Docker 配置并重启服务:

复制代码
systemctl daemon-reload  # 重新加载系统服务配置
systemctl restart docker # 重启Docker服务

执行以下命令查看 Docker 配置,确认加速器已生效:

复制代码
docker info

在输出结果中找到Registry Mirrors项,若显示你配置的华为云加速地址,则说明配置成功。

相关推荐
SelectDB12 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
曲幽19 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
武子康3 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn866 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker