【Linux 从基础到进阶】Docker 容器技术基础与应用

news/2024/9/19 10:58:55/ 标签: linux, docker, eureka

Docker 容器技术基础与应用

Docker 是一种开源的容器化平台,它使得开发人员能够自动化应用程序的部署、管理和隔离。通过容器技术,Docker 提供了一种轻量级的虚拟化解决方案,与传统的虚拟机相比,容器的启动速度更快,占用资源更少,因此广泛应用于现代 DevOps 流程和微服务架构中。

本文将详细介绍 Docker 容器的基础概念、工作原理、安装步骤以及在 CentOS 和 Ubuntu 上的应用实践。

1. Docker 基础概念

1.1 容器(Container)

容器是一种轻量级的、可移植的运行环境,它封装了应用程序及其所有的依赖项,使得应用可以在任何支持容器的环境中一致运行。与传统的虚拟机不同,容器共享宿主机的内核,因此更加高效。

1.2 镜像(Image)

Docker 镜像是容器的静态模板,它包含了应用程序及其运行所需的所有依赖。容器是镜像的运行实例。通过 Docker 镜像,可以在不同环境中创建一致的容器。

1.3 Docker Hub

Docker Hub 是 Docker 官方提供的镜像仓库,用户可以从 Docker Hub 拉取公共镜像,也可以将自己的镜像推送到 Docker Hub 进行共享和管理。

1.4 Dockerfile

Dockerfile 是定义如何构建 Docker 镜像的文本文件,它包含一系列指令,指示 Docker 如何从基础镜像开始,添加依赖、复制文件、配置环境变量等,最终生成新的 Docker 镜像。

2. Docker 工作原理

Docker 基于 Linux 内核的 cgroupsnamespace 技术实现了资源隔离,并使用 UnionFS 文件系统实现了高效的分层镜像存储。每个 Docker 容器是一个独立的进程,但共享宿主机的内核,因此其资源开销远小于虚拟机。

Docker 容器通过以下几个核心组件来实现其高效的工作原理:

  • Namespace:提供进程、网络、文件系统等的隔离。
  • Cgroups:实现资源的限制和控制,如 CPU、内存、磁盘等。
  • UnionFS:实现镜像的分层存储,减少冗余。

3. Docker 安装与配置

在 CentOS 和 Ubuntu 系统中,Docker 的安装步骤略有不同。接下来分别介绍这两种系统下的 Docker 安装方法。

3.1 在 CentOS 上安装 Docker

3.1.1 卸载旧版本

如果之前安装过旧版本的 Docker,可以先卸载:

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
3.1.2 安装依赖包
sudo yum install -y yum-utils

http://www.ppmy.cn/news/1525383.html

相关文章

类和对象(中)【上篇】(构造,析构,拷贝函数)

🌟个人主页:落叶 目录 类的默认成员函数 构造函数 无参构造 带参构造函数 全缺省构造函数 析构函数 对⽐C和C解决括号匹配问题 C语言版的Stack C版的Stack 拷⻉构造函数 类的默认成员函数 默认成员函数就是⽤⼾没有显式实现,编译器会…

《JavaEE进阶》----11.<SpringIOCDI【Spring容器+IOC详解+DI介绍】>

本篇博客会详细讲解什么是Spring。 SpringIOC SpringID 五个类注解:Controller、Service、Repository、Component、Configuration 一个方法注解:Bean 什么是Spring IOC容器 Spring 是包含众多工具的IOC容器。能装东西的容器。 1.容器 如我们之前学的 Tom…

ASP.net core 8.0网站发布

安装 net8 下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0 复制wwwroot文件夹 把项目中的wwwroot文件夹复制到项目文件夹下bin\Debug\net8.0下,这文件夹就是可运行的网站程序 运行 运行bin\Debug\net8.0文件夹下的exe程序即可

如何使用极狐GitLab 实现 GitOps?

极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitL…

实现一个点缓慢到达另一个点

实现一个点缓慢到达另一个点 使用线性插值的方法将点从一个位置平滑地移动到另一个位置: #include <stdio.h> #include <stdlib.h> #include <unistd.h> // 用于 sleep 函数// 点的结构体

【数据结构和算法实践-树-LeetCode112-路径总和】

数据结构和算法实践-树-LeetCode112-路径总和 题目My Thought代码示例JAVA-8 题目 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0…

LeetCode之栈

20. 有效的括号 class Solution {public boolean isValid(String s) {// 边界处理&#xff1a;如果字符串长度是奇数&#xff0c;则不可能配对成功if (s.length() % 2 ! 0) {return false;}// 创建一个映射&#xff0c;存储闭合括号对应的开括号Map<Character,Character>…

幻灯片放映过程中如何调出激光笔

1、第一步先打开制作好的幻灯片 2、进行幻灯片放映 3、看到上图最下面一行&#xff0c;减号左方的小杯进入幻灯片播放 4、幻灯片下方有个放映&#x1f58a;&#xff0c;点击一下 5、选择激光笔就好啦

微信小程序/uniapp 程序分包处理,小程序性能优化

目录 分包的作用文件分包分包配置注意事项 分包的作用 微信小程序性能与体验优化官网解释 使用 分包加载 是优化小程序启动耗时效果最明显的手段。建议开发者按照功能划分&#xff0c;将小程序的页面按使用频率和场景拆分成不同分包&#xff0c;实现代码包的按需加载。 分包加…

Naive UI中的时间选择器如何禁止选择今天之前的时间

:is-date-disabled"dateDisabled"<n-date-pickerv-if"formData.timeEndActive"type"date"style"width: 100%"placeholder"请选择任务结束时间"value-format"yyyy-MM-dd 23:59:59":is-date-disabled"dateD…

迷你洗衣机哪个牌子好又实惠?5大主流产品综合实测分享!

在日常生活中&#xff0c;内衣洗衣机已成为现代家庭必备的重要家电之一。选择一款耐用、质量优秀的内衣洗衣机&#xff0c;不仅可以减少洗衣负担&#xff0c;还能提供高效的洗涤效果。然而&#xff0c;市场上众多内衣洗衣机品牌琳琅满目&#xff0c;让我们往往难以选择。那么&a…

【Linux基础】02 权限

2024-09-11 shell ⭐原理上初步理解 shell 为什么&#xff1f; 用户不能直接访问 OS操作系统本身&#xff1a;易用程度安全 可以检查用户的指令是否非法、安全 是什么&#xff1f; 核心工作&#xff1a;用户和内核之间 需求指令 <-shell->执行结果 将使用者的命令翻译…

ChatGPT在环境科学领域的应用前沿分享

ChatGPT在环境科学领域的应用前沿 在党的二十届三中全会上&#xff0c;明确要求健全因地制宜的发展新质生产力体制机制。新质生产力通过创新驱动&#xff0c;以高科技、高效能、高质量为特征&#xff0c;旨在摆脱传统经济增长方式和生产力发展路径&#xff0c;符合新发展理念。…

mathorcup发邮件:参赛必看邮件撰写技巧?

mathorcup发邮件的注意事项&#xff1f;如何使用mathorcup发信&#xff1f; 无论是提交参赛作品、咨询比赛规则&#xff0c;还是与组委会沟通&#xff0c;一封清晰、专业的邮件都能为你赢得更多机会。AokSend将为你详细介绍mathorcup发邮件的撰写技巧&#xff0c;帮助你在比赛…

基于JavaWeb开发的java springboot+mybatis电影售票网站管理系统前台+后台设计和实现

基于JavaWeb开发的java springbootmybatis电影售票网站管理系统前台后台设计和实现 &#x1f345; 作者主页 网顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获…

共享内存喜欢沙县小吃

旭日新摊子好耶&#xff01; 系统从0开始搭建过通信方案&#xff0c;本地通信方案的代码&#xff1a;System V IPC 里面有共享内存、消息队列、信号量 共享内存 原理 两个进程有自己的内存区域划分&#xff0c;共享内存被创建出的时候是归属操作系统的&#xff0c;还是通过…

基于UDP的简易网络通信程序

目录 0.前言 1.前置知识 网络通信的大致流程 IP地址 端口号&#xff08;port&#xff09; 客户端如何得知服务器端的IP地址和端口号&#xff1f; 服务器端如何得知客户端的IP地址和端口号&#xff1f; 2.实现代码 代码模块的设计 服务器端代码 成员说明 成员实现 U…

运行PaddleOCR报错:requests.exceptions.SSLError: HTTPSconnectionPool……

文章目录 问题描述解决方法 问题描述 在运行以下代码时报错&#xff1a; ocr PaddleOCR(lang"en")解决方法 打开cmd&#xff0c;输入以下命令&#xff0c;查找Python解释器所在路径。 找到 Lib\site-packages\paddleocr\ppocr\utils\network.py&#xff0c;将代码…

【Linux】数据链路层

一、数据链路层引入 1.1 数据链路层的功能 在网络层中&#xff0c;我们使用IP协议进行通信&#xff0c;需要进行跨网络转发到目标主机&#xff0c;本质上就是一个报文经历了无数个子网&#xff0c;而数据链路层就是解决在一个子网中如何传输报文的问题。 数据链路层的功能是&a…

5款好用的远程控制软件测评分享|总有一款适合你!

随着远程办公和协作的需求日益增加&#xff0c;远程控制软件已经成为许多人日常生活和工作中不可或缺的一部分。 无论是技术支持、家庭办公还是远程协作&#xff0c;一款好的远程控制软件都能够极大地提升效率和便利性。 以下是五款市面上口碑较好、功能强大的远程控制软件的…