当前位置: 首页 > news >正文

【基础篇】Docker 架构与组件 TWO

嗨,小伙伴们!我是小竹笋,一名热爱创作的工程师。上一篇我们聊了聊 Docker 的历史与发展、与虚拟机的对比以及它在行业中的应用。今天,让我们更进一步,深入探讨 Docker 的架构与关键组件。

欢迎订阅公众号:JAVA和人工智能

🤝 Docker 客户端与服务端架构

想象一下,你正在用一台笔记本电脑通过网络连接到一台远端服务器上运行 Docker 容器。在这个过程中,你的笔记本电脑就是 Docker 客户端,而远端服务器则是 Docker 服务端。客户端和服务端之间通过 RESTful API 进行通信,这样就可以远程控制 Docker 容器啦!

图片

提示:图片来自网络

💻 Docker Daemon、API 和 CLI
  • Docker Daemon: Docker Daemon 是服务端的核心组件,负责接收客户端发送过来的命令,并处理这些命令。你可以把它想象成是 Docker 的大脑,控制着一切。

  • Docker API: Docker Daemon 通过 Docker API 与客户端进行交互。API 提供了一种标准的方式来管理 Docker 容器,比如创建、运行和删除容器。

  • Docker CLI: Docker CLI(命令行接口)是客户端的组成部分,它提供了用户与 Docker Daemon 交互的方式。通过简单的命令,你就可以完成复杂的操作。

📦 Docker Registry 详解

Docker Registry 是用来存储 Docker 镜像的地方。它就像一个图书馆,里面存放着各种各样的书籍(镜像)。Docker 默认使用的公共镜像库叫做 Docker Hub,但是你也可以搭建自己的私有 Registry。

  • Docker Hub: 这是一个公开的注册表,任何人都可以上传和下载镜像。它就像是互联网上的公共图书馆,里面的书籍(镜像)可以被任何人免费阅读(使用)。

  • Private Registry: 私有 Registry 则像是公司的内部图书馆,只有特定的人才能访问。它可以部署在企业内部,用于安全地存储和分发镜像。

📝 Dockerfile 与镜像构建流程
  • Dockerfile: Dockerfile 是一个文本文件,包含了创建 Docker 镜像所需的指令。你可以把它想象成一份食谱,告诉 Docker 如何“烹饪”出一个镜像。

  • 构建流程: 当你执行 docker build 命令时,Docker 会按照 Dockerfile 中的指令一步步构建镜像。这个过程就像是按照食谱一步一步做出一道美味的菜肴。

    图片

  • 提示:图片来自网络

📝 实战演练:创建一个简单的 Dockerfile
# 使用官方的基础镜像作为起点
FROM alpine:latest# 设置工作目录
WORKDIR /app# 复制当前目录下的文件到容器的 /app 目录
COPY . /app# 安装必要的软件包
RUN apk add --no-cache curl# 指定容器启动时运行的命令
CMD ["curl", "-L", "http://example.com"]
  1.  FROM: 指定基础镜像。

  2.  WORKDIR: 设定工作目录。

  3.  COPY: 复制文件到容器。

  4.  RUN: 执行命令,这里安装了 curl。

  5. CMD: 定义容器启动时执行的命令


接下来的一篇文章里,我们将深入探讨 Docker 的架构和主要组件。敬请期待

下期预告:

【基础篇】Docker 镜像管理 THREE!

  • Docker 客户端与服务端架构

  • Docker Daemon、Docker API 和 Docker CLI

  • Docker Registry 详解

  • Dockerfile 与镜像构建流程


参考资料:

  • Docker 官方网站:

  • https://www.docker.com/

  • Docker 官方文档 GitHub 仓库:

  • https://github.com/docker/docker.github.io

  • Docker 中文社区翻译项目:

  • https://github.com/docker-cn/docker-cn


📢 读者互动: 你是否已经在工作中使用了 Docker?欢迎在评论区分享你的使用体验或遇到的问题!

如果你觉得这篇文章对你有所帮助,请给我点个赞或者转发给你的朋友吧!👍


推荐阅读:

  • • Kubernetes 中文官网:

  •          https://kubernetes.p2hp.com/#google_vignette           


往期回顾:

  • 【基础篇】Docker 概览 ONE

  •  Elasticsearch简介

🌟 关注小竹笋,一起学习更多有趣的技术知识吧!

版权声明: 本文为原创作品,未经允许不得转载。

相关文章:

【基础篇】Docker 架构与组件 TWO

嗨,小伙伴们!我是小竹笋,一名热爱创作的工程师。上一篇我们聊了聊 Docker 的历史与发展、与虚拟机的对比以及它在行业中的应用。今天,让我们更进一步,深入探讨 Docker 的架构与关键组件。 欢迎订阅公众号:…...

03。正式拿捏ArkTS语言第一天

1, 打印日志命令 : console.log() 2, 三种基本数据类型: number 数字类型 (数字) string 字符串类型(例如:“我是字符串”) boolean 布尔类型 (true 或者 false) ***…...

【PyTorch][chapter 27][李宏毅深度学习][attention-3]

前言: 前面重点讲了self-attention, mulitHead self-attention. 目录: self-attention positional Encoding 语音处理例子 跟CNN区别 跟 RNN 区别 一 self-attention 回顾 优点 1 解决了长序列依赖问题 2 并行计算 缺点 1 开销变大 增加了 Q…...

java-数据结构与算法-02-数据结构-05-栈

文章目录 1. 栈1. 概述2. 链表实现3. 数组实现4. 应用 2. 习题E01. 有效的括号-Leetcode 20E02. 后缀表达式求值-Leetcode 120E03. 中缀表达式转后缀E04. 双栈模拟队列-Leetcode 232E05. 单队列模拟栈-Leetcode 225 1. 栈 1. 概述 计算机科学中,stack 是一种线性的…...

Python 管理依赖包(pip, virtualenv)

在Python编程中,管理依赖包是开发工作的重要组成部分。正确管理依赖包可以确保代码在不同环境中的一致性和可移植性,避免版本冲突和依赖地狱等问题。Python中常用的依赖包管理工具包括pip和virtualenv。 一、pip pip是Python官方推荐的包管理工具&…...

Bigdecimal 导出为excel时显示未0E-10,不是0,怎么解决

在使用 ​​BigDecimal​​​ 导出到 Excel 时,如果遇到显示为 ​​0E-10​​​ 而不是 ​​0​​​ 的问题,这通常是因为 ​​BigDecimal​​​ 对象的精度问题。​​0E-10​​​ 表示的是 ​​0​​​ 乘以 10 的 -10 次方,这在数学上等同于…...

springboot项目从jdk8升级为jdk17过程记录

背景:公司有升级项目jdk的规划,计划从jdk8升级到jdk11 开始 首先配置本地的java_home 参考文档:Mac环境下切换JDK版本及不同的maven-CSDN博客 将pom.xml中jdk1.8相关的版本全部改为jdk17,主要是maven编译插件之类的&#xff0c…...

list、tuple、set和dict传参机制

1、list、tuple、set和dict传参机制 # -------------list------------- def f1(my_list):print(f"②f1()my_list:{my_list} 地址是:{id(my_list)}") # ["tom","mary","hsp"] 0x1122my_list[0]"jack"print(f&quo…...

Redis快速入门基础

Redis入门 Redis是一个基于内存的 key-value 结构数据库。mysql是二维表的接口数据库 优点: 基于内存存储,读写性能高 适合存储热点数据(热点商品、资讯、新闻) 企业应用广泛 官网:https://redis.io 中文网:https://www.redis.net.cn/ Redis下载与…...

python基础介绍

这次的专题是关于python的知识点,加油! 文章目录 1 什么是计算机(1.1 哪些可以称为计算机?(以下)(1.2 计算机可以完成的工作有哪些?(1.3 一台计算机由什么构成? 2. 什么是编程(2.1 编…...

SSRF中伪协议学习

SSRF常用的伪协议 file:// 从文件系统中获取文件内容,如file:///etc/passwd dict:// 字典服务协议,访问字典资源,如 dict:///ip:6739/info: ftp:// 可用于网络端口扫描 sftp:// SSH文件传输协议或安全文件传输协议 ldap://轻量级目录访问协议 tftp:// 简单文件传输协议 gopher…...

Java | Leetcode Java题解之第284题窥视迭代器

题目&#xff1a; 题解&#xff1a; class PeekingIterator<E> implements Iterator<E> {private Iterator<E> iterator;private E nextElement;public PeekingIterator(Iterator<E> iterator) {this.iterator iterator;nextElement iterator.next(…...

哈尔滨等保定级的常见问题

一、哈尔滨等保测评定级标准理解问题 哈尔滨等保测评如何确定信息系统的安全保护等级&#xff1f; 信息系统的安全保护等级应根据其在国家安全、经济建设、社会生活中的重要程度&#xff0c;以及一旦遭到破坏后对国家安全、社会秩序、公共利益以及公民、法人和其他组织的合法权…...

springAOP理解及事务

AOP&#xff1a; springAOP是什么&#xff1a; AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;其实就是面向特定方法编程。 使用场景&#xff1a; 比如你想统计业务中每个方法的执行耗时&#xff0c;那我们最…...

Optional类的使用 java8(附代码)

&#x1f370; 个人主页:_小白不加班__ &#x1f35e;文章有不合理的地方请各位大佬指正。 &#x1f349;文章不定期持续更新&#xff0c;如果我的文章对你有帮助➡️ 关注&#x1f64f;&#x1f3fb; 点赞&#x1f44d; 收藏⭐️ 文章目录 一、什么是Optional&#xff1f;二、…...

企业利用AI智能名片S2B2C商城小程序参与社区团购的风险与机遇分析

摘要 在新零售浪潮的推动下&#xff0c;社区团购以其独特的商业模式迅速崛起&#xff0c;成为连接消费者与供应商的重要桥梁。企业纷纷探索如何有效利用这一新兴渠道&#xff0c;以扩大市场份额、提升品牌影响力。AI智能名片S2B2C商城小程序的引入&#xff0c;为企业参与社区团…...

全链路追踪 性能监控,GO 应用可观测全面升级

作者&#xff1a;古琦 01 介绍 随着 Kubernetes 和容器化技术的普及&#xff0c;Go 语言不仅在云原生基础组件领域广泛应用&#xff0c;也在各类业务场景中占据了重要地位。如今&#xff0c;越来越多的新兴业务选择 Golang 作为首选编程语言。得益于丰富的 RPC 框架&#xff…...

深入探索CSS3的Media Query:打造响应式网页设计的利器

在今天的互联网世界中&#xff0c;随着设备种类和屏幕尺寸的多样化&#xff0c;响应式网页设计&#xff08;Responsive Web Design, RWD&#xff09;已成为不可或缺的一部分。CSS3中的Media Query正是这一设计理念的实现利器&#xff0c;它允许开发者根据用户的设备特性和屏幕尺…...

DDD(Domain-Driven Design)领域驱动设计

在软件开发中&#xff0c;DDD&#xff08;Domain-Driven Design&#xff0c;领域驱动设计&#xff09;是一种方法论&#xff0c;它强调在开发过程中将业务领域的知识和规则作为核心。DDD的目标是通过理解和建模业务领域来创建更好的软件系统。本文将详细讲解DDD的基本概念、原则…...

基于k8s快速搭建docker镜像服务的demo

基于k8s快速搭建docker镜像服务的demo 一、环境准备 如标题&#xff0c;你需要环境中有和2个平台&#xff0c;并且服务器上也已经安装好docker服务 接下来我来构建一个docker镜像&#xff0c;然后使用harbork8s来快速部署服务demo 二、部署概述 使用docker构建镜像&#x…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...