-
Notifications
You must be signed in to change notification settings - Fork 0
/
content.json
1 lines (1 loc) · 16.6 KB
/
content.json
1
{"posts":[{"title":"Docker-初识","text":"1. 什么是 Docker? 通俗理解Docker 就像是一只鲸鱼,鲸鱼是宿主机,它携带着许多集装箱,而每个集装箱则代表一个独立且隔离的容器。每个容器中都包含着自己的应用程序和所需的依赖环境,确保它们能够独立且一致地运行。 信息概述::: warning- 它是一个开源的应用容器引擎,基于 Go 语言 开发并遵循 Apache 2.0 协议开源。- 它是在 Linux 容器里运行应用的开源工具。- 它是一种 轻量级的虚拟机。- 它的 容器技术,可以在一台主机上轻松为任何应用创建一个 轻量级的、可移植的、自给自足的容器。::: 宗旨::: warning通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装, 到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。::: 2. 为什么要使用 Docker?Docker 与虚拟机(VM)的区别 架构层次:VM 运行在硬件上,通过虚拟化管理程序来模拟多个操作系统实例,VM 较重,因为每个虚拟机都需要一个独立的操作系统和虚拟化资源。而 Docker 运行在宿主操作系统上,并共享宿主操作系统的内核,是轻量级的。 资源消耗:每一个 VM 都运行一个完整的操作系统,需要更多的资源来支持,启动时间较长。Docker 容器则秒级启动。 隔离方式:VM 提供了完全的硬件级隔离,强隔离性,而 Docker 使用操作系统级隔离(也叫容器化),每个容器与宿主操作系统共享内核,但它们的进程、文件系统、网络和设备都是独立的,隔离性较弱。 可移植性:VM 的可移植性较差,因为每个 VM 都包含完整的操作系统和应用程序,需要配置和适应不同的硬件资源。Docker 容器的可移植性非常强,容器包含了应用程序及其所有依赖,可以在任何安装了 Docker 引擎的机器上运行。 管理与部署:VM 管理较复杂,而 Docker 提供了简洁的命令和图形界面工具来帮助构建、部署和管理容器。 安全性:VM 的安全性更高,因为它提供了强隔离性。 使用场景:VM 适用于需要完整隔离、对操作系统有不同要求的场景,而 Docker 适用于微服务架构、持续集成和部署、大规模快速部署、云计算等轻量级、高性能的场景。 Docker 优势 轻量级 快速启动 可移植性 一致的开发、测试和生产环境 高效的资源利用 隔离性 易于部署和管理 持续集成和交付支持 版本控制和回滚 支持微服务架构 3. Docker 的具体原理核心概念 Docker 镜像(Image):镜像是 Docker 容器的蓝图,包含应用程序的所有必要文件、库、依赖和配置。镜像是只读的,可以从 Docker Hub 或其他镜像仓库下载,也可以通过 Dockerfile 自定义构建。 构建镜像:通过 Dockerfile 定义,使用 docker build 命令构建镜像。 Docker 容器(Container):容器是镜像的运行实例,容器之间默认是相互隔离的,可以通过 docker run 命令启动一个容器,指定镜像和运行的命令。 Docker 引擎(Docker Engine):Docker 引擎是 Docker 的核心组件,它是运行容器的基础。 仓库(Repository):仓库用于存储和管理 Docker 镜像,类似于软件包管理中的“包仓库”。开发者可以存储、分享和拉取镜像,以便在不同的环境中运行容器。仓库有公有和私有之分。 Docker 底层技术 Docker VS VM Docker 实现了类似虚拟化的技术,利用 Linux 的隔离功能,使容器看起来像是轻量级的虚拟机。实际情况是 Docker 使用了 Linux 的多项功能,如 Namespaces、Cgroups 等,使容器具有独立的文件系统和网络环境,但共享宿主机的内核。 Docker 底层使用的 Linux 功能: Namespaces:用于进程隔离(视野隔离)。 Cgroups (Control Groups):用于资源隔离,通过限制容器对 CPU、内存、网络等资源的使用,防止一个容器占用宿主机的所有资源。 UnionFS:用于文件隔离,Docker 镜像存储使用了 AUFS 技术。 Container Format:Docker 容器的格式和结构。 Docker 架构 通过命令 docker build、docker pull 和 docker run 来操作 Docker。Docker 主机首先从远程仓库拉取镜像到本地,创建本地镜像后,可以根据镜像启动多个容器,容器相互隔离运行。","link":"/2024/11/27/Docker/"},{"title":"Linux-1","text":"Linux相关技术:Namespaces, Cgroups, UnionFS, Container Format1. NamespacesNamespaces(命名空间)是 Linux 内核提供的一种隔离技术,用于将不同的进程组隔离开来,使得它们看起来像是在各自独立的环境中运行。通过使用命名空间,Docker 容器能够实现进程、网络、文件系统等方面的隔离。 Docker 使用了以下几种主要的命名空间来实现容器隔离: PID Namespace:每个容器有自己的进程 ID(PID)空间,容器内部的进程与宿主机进程互不干扰。 Network Namespace:容器有独立的网络栈,包括 IP 地址、端口和路由表,容器间网络通信通过虚拟网络接口隔离。 Mount Namespace:容器拥有独立的文件系统视图,通过挂载点隔离宿主机和容器的文件系统。 IPC Namespace:提供进程间通信的隔离,容器内部的进程只访问本容器的共享内存等资源。 UTS Namespace:隔离主机名和域名等系统信息,每个容器可以拥有独立的主机名,避免冲突。 User Namespace:容器内部的用户和组与宿主机隔离,容器中的 root 用户不具备宿主机的 root 权限。 通过这些命名空间,Docker 实现了容器级别的资源隔离,确保每个容器的环境互不干扰。 2. CgroupsCgroups(Control Groups)是 Linux 内核提供的资源控制技术,用于限制、记录和隔离进程组使用的资源(如 CPU、内存、磁盘 I/O 和网络带宽等)。在 Docker 中,cgroups 用来限制每个容器的资源消耗,避免容器间资源的争抢。 CPU Cgroup:限制容器使用的 CPU 时间和优先级,控制容器的 CPU 资源分配。 Memory Cgroup:限制容器使用的内存量,确保容器不会消耗过多内存,避免宿主机崩溃。 Block I/O Cgroup:限制容器的磁盘 I/O 使用,防止过度使用磁盘带宽。 Network I/O Cgroup:控制容器的网络带宽使用,避免占用过多带宽。 通过 Cgroups,Docker 可以精细控制每个容器的资源消耗,保证资源分配的公平性和有效性。 3. UnionFSUnionFS(Union File System)是 Linux 上的一种文件系统实现,它允许将多个文件系统合并成一个单一的文件系统视图。Docker 使用 UnionFS 来高效地管理镜像层,使得容器在运行时能够共享镜像文件,而无需重复存储相同的文件。 层叠文件系统:在 Docker 中,镜像由多个只读层组成,每一层代表镜像构建过程中的一个操作(如安装软件、修改配置)。这些层通过 UnionFS 合并成一个文件系统视图,容器在启动时从镜像的只读层中读取文件。 写时复制(Copy-on-Write,COW):容器运行时,会生成一个可写层来保存容器对文件的修改。修改的文件会存储在容器的写时复制层中,未修改的部分仍指向镜像的只读层。这样可以高效复用镜像层,避免重复存储。 UnionFS 提供了高效的文件系统合并和数据共享机制,是 Docker 高效构建和运行镜像的关键。 4. Container FormatContainer Format(容器格式)是 Docker 容器的内部结构和规范,它决定了容器如何封装应用程序及其依赖项、运行时环境等。容器格式保证了容器可以在不同的系统和平台之间迁移和运行。 容器格式通常包含以下几个部分: 镜像层:容器镜像由多个层组成,每一层包含应用程序及其依赖、配置文件等内容。 元数据:容器镜像包含元数据,如应用程序的启动命令、环境变量、端口映射等配置。 可执行环境:容器内包含操作系统环境、文件系统、库文件和应用程序等。 Docker 使用标准的容器格式,通过镜像层和元数据的组合,使得容器能够在不同的环境中迁移和运行,避免对宿主操作系统的依赖。","link":"/2024/11/28/Linux1/"},{"title":"Interview_Notes1-数据基本结构","text":"数组1.有序数组-无重复元素-区间定义-二分法(log n)-注意是while(left<=right>)还是left < right 相关技术","link":"/2024/11/24/InterviewNotes1/"},{"title":"Markdown","text":"Markdown简介Markdown 是一种轻量级的标记语言,它通过简单的符号来格式化文本,以便生成结构化的内容。Markdown 的设计目标是让人类能够容易编写和阅读,同时能转换成 HTML 等格式,广泛应用于文档编写、博客、GitHub 等平台。Markdown学习链接 Markdown基本语法1.标题:#-一级标题、##-二级标题、###-三级标题2.无序列表使用 - 或 ,有序列表使用数字和点(1.)3.加粗与斜体(使用 ** 或 __ 来加粗,使用 * 或 _ 来斜体)加粗文本*斜体文本4.链接与图片(链接使用 文本,图片则在链接前加上 !)5.代码块(行内代码使用反引号 `,多行代码块使用三个反引号 ```)‘’’System.out.println(“你好啊!”);int b=1+2; ‘’’6.引用(使用 > 来表示引用) 这是引用文本。7.分隔线(使用三个或更多的短横线 —、星号 *** 或下划线 ___ 来插入分隔线。) ———","link":"/2024/11/28/Markdown/"},{"title":"NancyWeather","text":"项目简介Weather-Nancy 是我在大二下学期 Android 课程中完成的一款综合性 Android 应用,目前正在不断完善和修改。该应用提供天气查询、音乐播放和日程管理功能。用户可以获取实时天气数据、播放本地和在线音乐,并管理个人日程安排。项目Github链接:https://github.com/LEIYOUSU/weather-nancy.git 相关技术(1)API 集成: 获取地理位置和天气信息,采用了和风天气API以及百度定位的SDK(2)OkHttp:用于向外部天气 API 发起 HTTP 请求并处理响应。(3)MediaPlayer:用于实现音频播放功能,支持本地和在线音乐播放。(4)Room Database:用于存储用户的日程数据,提供本地数据持久化。Room 是一个 Android 官方提供的 SQLite 数据库抽象层。(5)Gradle:Android 项目的构建工具,用于管理依赖和构建过程。","link":"/2023/10/12/NancyWeather/"}],"tags":[{"name":"Docker","slug":"Docker","link":"/tags/Docker/"},{"name":"容器化技术","slug":"容器化技术","link":"/tags/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF/"},{"name":"OS-level virtualization","slug":"OS-level-virtualization","link":"/tags/OS-level-virtualization/"},{"name":"Linux","slug":"Linux","link":"/tags/Linux/"},{"name":"二分法","slug":"二分法","link":"/tags/%E4%BA%8C%E5%88%86%E6%B3%95/"},{"name":"Markdown","slug":"Markdown","link":"/tags/Markdown/"},{"name":"Android","slug":"Android","link":"/tags/Android/"},{"name":"天气预报App","slug":"天气预报App","link":"/tags/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5App/"},{"name":"GitHub","slug":"GitHub","link":"/tags/GitHub/"},{"name":"Java","slug":"Java","link":"/tags/Java/"},{"name":"Room Database","slug":"Room-Database","link":"/tags/Room-Database/"},{"name":"Gradle","slug":"Gradle","link":"/tags/Gradle/"}],"categories":[{"name":"tools","slug":"tools","link":"/categories/tools/"},{"name":"Android","slug":"Android","link":"/categories/Android/"},{"name":"Docker","slug":"Docker","link":"/categories/Docker/"},{"name":"算法笔记","slug":"算法笔记","link":"/categories/%E7%AE%97%E6%B3%95%E7%AC%94%E8%AE%B0/"},{"name":"Linux","slug":"Linux","link":"/categories/Linux/"}],"pages":[{"title":"","text":"个人简介 分享很喜欢的老罗的一段话: “每一个生命来到世间都注定改变世界,别无选择。要么变得好一点,要么变得坏一点。你如果走进社会为了生存为了什么不要脸的理由,变成了一个恶心的成年人社会中的一员,那你就把这个世界变得恶心了一点点。如果你一生刚正不阿,如果你一生耿直,没有做任何恶心的事情,没做对别人有害的事情,一辈子拼了老命勉强把自己身边的几个人照顾好了,没有成名没有发财,没有成就伟大的事业,然后耿着脖子一生正直,到了七八十岁耿着脖子去世了。你这一生是不是没有改变世界?你还是改变世界了,你把这个世界变得美好了一点点。因为世界上又多了一个好人。“ 善恶终有报,天道好轮回。不信抬头看,苍天饶过谁。无论何时何地,我们都要保持一颗积极乐观、善良感恩的心。但行好事莫问前程,永远年轻,永远热内盈眶,永远保持正能量。💪💪💪💪💪💪冲鸭!!!! ->>>>>>>>>>>>>>>>>>>>个人信息:计算机科学与技术专业从事JAVA后端开发码畜一枚坚信代码改变世界 博客信息 网站采用的Icarus主题 追求尽可能的简洁,清晰,易用。 在Icarus主题之上进行了部分修改。 更新日志:–2020.09.20:icarus4.0适配–2020.01.18:icarus3.0适配–2019.11.17:增加深色主题开关–2019.10.30:去图,精简卡片–2019.10.22:改版部分显示,优化速度–2019.10.16:文章列表加上评论数显示–2019.10.13:改版评论–2019.09.25:图片、资源接入CDN免费jsDelivr、文章加入置顶–2019.09.19:开源博客代码–2019.09.19:修改布局,拉伸布局,更宽的展示–2019.09.18:修改友链ui为一行三个,并适配移动端,暗黑模式文章增加评论链接,增加留言链接–2019.09.14:增加精简next主题–2019.09.14:利用中秋节放假,重做了首页的热门推荐、加个widget最新评论框、归档页加入文章贡献概览面板 本站推荐索引 博客主题相关 github Issue 作为博客微型数据库的应用 github page网站cdn优化加速 博客源码分享 博客换肤的一种实现方式思路 博客中gitalk最新评论的获取 博客图片上传picgo工具github图传使用 安装、部分配置icarus主题中文版 技术知识点 Java并发知识点 法律法规 法律法规数据库 中华人民共和国国旗法 中华人民共和国宪法 中华人民共和国消费者权益保护法 中华人民共和国刑事诉讼法 中华人民共和国婚姻法 中华人名共和国网络安全法 中华人民共和国劳动法 其他 网易云音乐歌单分享 计划2020计划 2019.12.31 2020-GOALS 跑两三场马拉松 2019计划 2018.12.31/21:59:00->更新于2019.12.31 2019-GOALS 购买的专业书籍至少看完一遍(并发、重构、设计模式…)-> 95% 额外: 追了很多剧 总结: 有优点有缺点,没坚持下来的还是太多,追了太多剧。以后多学习,多思考! 时间轴记录","link":"/about/index.html"},{"title":"","text":"🎈🎈微笑墙🎈🎈 彭小苒 唐艺昕 李一桐 gakki 图片搜集于互联网,侵权请留言,马上处理😊。","link":"/album/index.html"},{"title":"","text":"申请友链须知 原则上只和技术类博客交换,但不包括含有和色情、暴力、政治敏感的网站。 不和剽窃、侵权、无诚信的网站交换,优先和具有原创作品的网站交换。 申请请提供:站点名称、站点链接、站点描述、logo或头像(不要设置防盗链)。 排名不分先后,刷新后重排,更新信息后请留言告知。 会定期清理很久很久不更新的、不符合要求的友链,不再另行通知。 本站不存储友链图片,如果友链图片换了无法更新。图片裂了的会替换成默认图,需要更换的请留言告知。 本站友链信息如下,申请友链前请先添加本站信息: 网站图标:https://removeif.github.io/images/avatar.jpg 网站名称:NancyのBlog 网站地址:https://leiyousu.github.io 网站简介:后端开发,技术分享 加载中,稍等几秒...","link":"/friend/index.html"},{"title":"","text":"来而不往非礼也畅所欲言,有留必应","link":"/message/index.html"},{"title":"音乐歌单收藏","text":"温馨提示:选择喜欢的音乐双击播放,由于版权原因部分不能播放。如果喜欢歌单收藏一下,去网易云都能播放哟!","link":"/music/index.html"},{"title":"","text":" 听听音乐 音乐播放器由mePlayer提供,布局参照网友博客所作,感谢作者的辛勤付出。更多音乐分享请查看歌单。 看看视频 ->点击以下条目开始播放视频,向下滑动查看更多","link":"/media/index.html"}]}