什么是Docker?

什么是Docker?

目录

一、Docker 基础概念

二、Docker 架构概览

1.Docker客户端(Docker Client)

2.Docker守护进程(Docker Daemon)

3.Docker 镜像(Docker Image)

4.Docker容器 (Docker Container)

5.Docker 仓库(Docker Registry)

三、Docker安装

四、Linux部署Docker


一、Docker 基础概念


1.Docker:一个容器化平台,可将应用程序及其依赖打包成轻量级、可移植的容器。
2.镜像:只读模板,用于创建Docker容器,包含运行应用程序所需的代码、运行时、系统工具和库。
3.容器:镜像的运行实例,是一个隔离的进程空间,包含应用程序及其运行环境。
4.Docker仓库:存储和分发镜像的地方(如DockerHub)。

二、Docker 架构概览

Docker采用客户端-服务器的分布式架构,分为以下几个关键部分:

  • Docker Client (客户端)
  • Docker Daemon (守护进程)
  • Docker Image (镜像)
  • Docker Container (容器)
  • Docker Registry (镜像仓库)

这些组件通过标准API进行交互,共同构建了一个完整的容器管理生态系统。

1.Docker客户端(Docker Client)


       Docker客户端是用户与Docker的主要交互方式,通常是通过命令行工具(CLI)实现的。它接受用户的指令,并将这些指令通过RESTful API发送给Docker Daemon处理。

主要功能:
        镜像管理:拉取、构建、上传镜像。
        容器管理:创建、启动、停止、删除容器。
        日志与状态查询:查看容器状态、日志和性能指标。


2.Docker守护进程(Docker Daemon)


        Docker Daemon是Docker的核心后台服务,负责实际执行容器的创建、运行和管理任务。它在主机上运行,监听DockerAPI请求。

主要功能:
        容器管理:负责启动、停止和销毁容器。
        镜像管理:下载、存储和分发镜像。
        资源分配:管理容器的CPU、内存、网络等资源。

        网络功能:配置容器间的网络通信。


3.Docker 镜像(Docker Image)


        Docker镜像是容器的只读模板,包含了运行应用所需的所有文件、依赖和配置。它类似于虚拟机的快照,但更轻量。
特点:
        分层结构:Docker镜像采用联合文件系统(UnionFS)技术,由多层叠加组成。每一层都对应一次文件系统的更改操作。
        可复用:不同的镜像可以共享底层的公共层,显著减少存储空间需求。


4.Docker容器 (Docker Container)


        容器是镜像的运行实例,包含了应用程序及其运行环境。它是Docker的核心对象,提供了轻量级、隔离的运行环境。
        特点:
        隔离性:每个容器运行在自己的用户空间中,拥有独立的文件系统、网络和进程空间。
        高效性:与虚拟机不同,容器共享宿主机的操作系统内核,因此启动速度更快,资源占用更少。

5.Docker 仓库(Docker Registry)


        Docker Registry是存储和分发镜像的服务,类似于代码仓库。Docker官方提供了公共镜像库Docker Hub,用户也可以搭建私有仓库。

三、Docker安装

  • 需要在操作系统上安装Docker引擎才能使用Docker命令。
  • 安装方法因操作系统而异(Linux、Windows、macOS),需参考官方文档进行安装。

四、Linux部署Docker

检查内核版本

Docker要求内核版本至少为3.10或更高

uname -r        #查看内核版本命令

安装docker依赖包

sudo yum install -y yum-utils device-mapper-persistent-data l vm2 

配置Docker国内镜像源(清华大学源)

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

安装docker

yum install -y docker-ce docker-ce-cli containerd.io

启动Docker服务并验证Docker是否正常运行

systemctl startdocker         #启动 Docker
sudo systemctl enable docker         #开机自启
docker version        #查看Docker版本

创建Docker配置文件在下目录中创建在配置文件中添加以下内容

vim/etc/docker/daemon.json #在/etc/docker目录下创建配置文件daemon.json { "registry-mirrors":[ "https://docker.m.daocloud.io", "https://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://your preferred_mirror", "https://dockerhub.icu". "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliryuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc" ] }

重启Docker服务进行测试

systemctl restartdocker        #重启服务

docker pull hello-world         #拉取 hello-world镜像

docker runhello-world           #运行镜像

docker images                      #查询镜像

Read more

Flutter 三方库 swagger_parser 自动化打通鸿蒙 API 通信(一键将 Swagger 转化为 Dart 模型)

Flutter 三方库 swagger_parser 自动化打通鸿蒙 API 通信(一键将 Swagger 转化为 Dart 模型)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 项目开发时,最枯燥的工作莫过于根据后端提供的 Swagger (OpenAPI) 文档手动编写一个个的 Request 类、Response 类和 API Client。这不仅低效,而且极易因文档更新没对齐而导致 Bug。 swagger_parser 是一个强大的命令行工具,它能直接读取本地或网络上的 Swagger JSON/YAML 文件,自动为你生成完整的 Dart 数据类和 Dio/Chopper API 控制器。 一、核心工作流 Swagger JSON / YAML Swagger Parser Dart 数据模型 (JSON Serialized) Dio / Chopper

By Ne0inhk
0x80070035找不到网络路径怎么办?win10/win11的6种有效解决方法

0x80070035找不到网络路径怎么办?win10/win11的6种有效解决方法

在win10或win11电脑访问局域网共享文件、连接其他设备时,不少人会遇到 “0x80070035 找不到网络路径” 报错,导致无法读取共享数据、协作受阻。据某技术社区2025年用户反馈统计,该错误在局域网场景占比超65%。下面我们将深入分析这一问题,并提供多种经过验证的解决方案。 一、0x80070035错误是什么 0x80070035是Windows系统访问网络资源时常见的错误代码,意味着系统无法定位到指定的网络路。当用户尝试访问局域网中的另一台计算机的共享文件夹或打印机时,系统会尝试通过网络路径(如\计算机名\共享名)建立连接,而这一过程因各种原因可能中断。这一错误在Windows 7、Windows 10和Windows 11系统中均有出现,成因多样但解决方案相似。 二、为什么会出现0x80070035错误? 0x80070035错误的产生涉及多个层面的因素,主要可归纳为以下四类: 1️⃣网络配置问题:网络发现功能未启用是最常见的原因之一。同一局域网内的计算机若想相互访问,必须确保所有设备开启了网络发现和文件共享功能。 2️⃣服务运行异常:多个Windows服

By Ne0inhk
Flutter for OpenHarmony:multicast_dns 发现局域网设备,实现零配置网络 (mDNS/Bonjour/Zeroconf)(本地服务发现) 深度解析与鸿蒙适配指南

Flutter for OpenHarmony:multicast_dns 发现局域网设备,实现零配置网络 (mDNS/Bonjour/Zeroconf)(本地服务发现) 深度解析与鸿蒙适配指南

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在智能家居、打印机共享、P2P 文件传输等场景中,设备往往通过局域网互联。但 IP 地址是动态分配的,用户不可能去记 192.168.1.105。mDNS(Multicast DNS)允许设备在没有 DNS 服务器的情况下,通过 .local 域名互相发现。 multicast_dns 是 Dart 官方提供的库,用于发送和接收 mDNS 报文。你可以用它来查找局域网内的 HTTP 服务、Google Cast 设备,或者广播自己的服务供他人发现。 一、概念介绍/原理解析 1.1 基础概念 * Multicast

By Ne0inhk

Flutter 三方库 serverpod_cli 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、全能、自动化的 Full-stack Dart (Serverpod) 后端与 HAP 端代码生成引擎

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 serverpod_cli 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、全能、自动化的 Full-stack Dart (Serverpod) 后端与 HAP 端代码生成引擎 在鸿蒙(OpenHarmony)系统的端云一体化应用开发中,如何通过一份模型定义(YAML),即可自动生成鸿蒙(HAP)端的强类型客户端代码、数据库迁移脚本及复杂的 RPC 接口?serverpod_cli 为开发者提供了一套工业级的“全栈 Dart”构建控制台。本文将带您深入实战其在构建鸿蒙高性能云端交互层中的应用。 前言 什么是 Serverpod CLI?它不是运行在 HAP 里的库,而是运行在鸿蒙开发环境(DevEco Studio 配套主机)中的“

By Ne0inhk