#渗透测试#SRC漏洞挖掘#云技术基础02之容器与云

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。                                                              #陇羽sec#

目录

一、容器与云

一、容器与云的基本概念

容器:

云(云计算):

二、容器与云的关系

容器基于云平台发挥更大作用

容器增强云服务的灵活性和效率

三、容器与云在企业应用中的区别与协作

区别

1、资源管理层面:

2、安全防护方面:

3、应用部署和管理:

协作

二、Ubuntu上生成CentOS 7容器

1、安装

步骤1:安装Docker

步骤2:拉取CentOS 7镜像

步骤3:创建并运行CentOS 7容器

步骤4:验证容器

步骤5:退出容器

2、docker 镜像源的更换

1. 备份原始源文件

2. 编辑源文件

3. 更新源列表

4. 验证源是否已经更换

5. 更换Docker镜像源

  三、 容器基本命令


一、容器与云

一、容器与云的基本概念

  • 容器
    • 容器是一种轻量级的、可移植的软件打包技术。它本质上是一种基于操作系统能力的隔离技术,是一组受到资源限制且彼此之间互相隔离的进程。例如,Docker容器就是一种典型的容器技术,它可以将应用程序及其依赖项打包成一个独立的单元,这个单元可以在不同的计算机和操作系统上运行,而不需要额外的配置和设置。容器之间的应用程序资源相互隔离,如每个容器都有自己的文件系统、进程空间和网络接口,可以避免相互干扰,具有很高的灵活性2。

  • 云(云计算)
    • 云计算是一种通过网络提供可伸缩的、虚拟化的计算资源(如计算能力、存储、网络等)的服务模式。云服务提供商将大量的计算资源集中起来,通过虚拟化技术将这些资源划分为多个虚拟的资源实例,然后根据用户的需求提供相应的服务。用户可以根据自己的业务需求按需使用这些资源,并且只需为使用的资源付费。常见的云服务类型包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)等。

二、容器与云的关系

  • 容器基于云平台发挥更大作用
    • 云平台为容器提供了运行的基础设施。容器可以在云环境中的虚拟机或者物理服务器上运行。例如在亚马逊云(AWS)、阿里云等云服务提供商的平台上,可以创建虚拟机实例,然后在这些实例上部署容器。云平台提供的计算资源、存储资源和网络资源等,为容器的运行提供了必要的支持。

    • 云平台的管理功能有助于容器的管理。云平台通常具有资源管理、监控、安全防护等功能,这些功能可以应用到容器上。例如,云平台可以对容器的资源使用情况进行监控,当容器的资源需求增加时,可以动态地为容器分配更多的资源;云平台的安全机制可以保护容器免受网络攻击等安全威胁。

  • 容器增强云服务的灵活性和效率
    • 容器的轻量级特性使得在云环境中部署应用更加快速。与传统的在云环境中部署虚拟机相比,容器的启动速度更快,占用的资源更少。这意味着在云环境中可以快速地部署大量的容器来运行应用程序,提高应用的部署效率。

    • 容器的可移植性使得云应用的迁移更加容易。由于容器将应用及其依赖项打包在一起,当需要将应用从一个云环境迁移到另一个云环境时,只需要将容器迁移即可,而不需要重新配置应用的运行环境。这对于企业在不同云服务提供商之间切换或者进行多云战略布局非常有利。

三、容器与云在企业应用中的区别与协作

  • 区别
    • 1、资源管理层面
      • :云服务提供商管理着大规模的计算、存储和网络资源池,用户通过云平台的管理界面或者API来申请和使用这些资源。云平台需要考虑资源的分配、调度、计费等多方面的管理。例如,在IaaS模式下,用户可以根据自己的需求选择不同规格的虚拟机实例(如不同的CPU核心数、内存大小等),云平台负责为用户分配相应的物理资源。

      • 容器:容器主要关注的是应用程序及其依赖项的打包和隔离。容器在运行时占用一定的计算、存储和网络资源,但容器本身并不直接管理这些资源的底层硬件。例如,Docker容器运行在操作系统之上,它利用操作系统的资源管理功能来获取所需的资源,容器更多地是对应用的运行环境进行管理,确保应用在不同环境中的一致性。

    • 2、安全防护方面
      • :云服务提供商提供了多种安全防护机制,如网络安全(防火墙、虚拟私有云等)、数据安全(数据加密、备份等)和身份认证管理等。这些安全措施是从云平台的整体层面来保障用户的资源和数据安全。例如,云平台可以设置安全组规则来限制虚拟机的网络访问权限。

      • 容器:容器的安全主要涉及容器内部的应用安全以及容器之间的隔离安全。例如,为了防止容器内的应用被恶意攻击,需要对容器内的软件进行漏洞扫描和安全加固;同时,为了确保容器之间的隔离性,防止一个容器中的安全问题影响到其他容器,需要采用一些容器安全技术,如安全容器(每个容器运行在单独的微型虚拟机中,拥有独立的操作系统内核和虚拟化层的安全隔离)。

    • 3、应用部署和管理
      • :云平台提供了多种方式来部署和管理应用,在IaaS模式下,用户需要自己搭建应用运行环境(如安装操作系统、中间件等);在PaaS模式下,云平台提供了应用运行的平台,用户只需将自己的应用代码部署到该平台上即可。云平台还提供了应用的监控、日志管理、自动伸缩等功能来管理应用的运行。

      • 容器:容器提供了一种标准化的应用打包和部署方式。通过将应用及其依赖项打包成容器,然后在任何支持容器运行的环境中进行部署。容器编排工具(如Kubernetes)可以对容器进行集群管理,实现容器的自动部署、扩容、缩容、负载均衡等功能。容器更侧重于应用的快速部署和可移植性。

  • 协作
    • 在企业应用中,通常是将容器和云相结合来发挥更大的优势。例如,企业可以利用云平台的计算资源来运行容器集群,通过容器来部署微服务架构的应用。云平台的弹性伸缩功能可以根据容器的负载情况自动调整资源的分配,容器的快速部署和可移植性可以方便企业进行应用的更新和迁移。同时,云平台的安全机制和容器的安全措施可以共同保障企业应用的安全运行。

    • 补充:

      虚拟化中每个VM需要运行自己的操作系统, 显着增加了总体开销。

      容器化是一种更加现代的架构,容器共享内核与硬件,更快、更小、更高效。
      容器远没有虚拟化强大,因此容器是对虚拟化的补充,而非取代。

      容器的系统开销更小(可忽略),因此可以进一 步分离应用组件,例如搜索、登录、查询、订单功能分开。

      容器使用映像作为模板生成。映像相当于计算机硬盘。

      容器使用不同发行版文件加载内核,运行容器。


二、Ubuntu上生成CentOS 7容器

1、安装

在Ubuntu上生成CentOS 7容器可以通过使用Docker来实现。Docker是一个开源的容器化平台,允许用户轻松地创建、部署和运行应用程序。

步骤1:安装Docker

首先,确保你的Ubuntu系统上已经安装了Docker。如果没有安装,可以通过以下命令进行安装:

sudo apt-get update 
sudo apt-get install docker.io  

安装完成后,启动Docker服务并设置为开机自启:

sudo systemctl start docker 
sudo systemctl enable docker 
步骤2:拉取CentOS 7镜像

使用Docker从Docker Hub上拉取CentOS 7的官方镜像:

sudo docker pull centos:7 
步骤3:创建并运行CentOS 7容器

拉取镜像后,可以创建并运行一个CentOS 7容器:

sudo docker run -it centos:7 /bin/bash 

这条命令会创建一个新的容器,并进入容器的交互式Bash shell。

步骤4:验证容器

在容器内部,你可以运行以下命令来验证你正在使用的是CentOS 7:

cat /etc/os-release 
步骤5:退出容器

当你完成工作后,可以通过以下命令退出容器:

exit

步骤6:再次进入容器

root@ubuntu:/home/hello/Desktop# docker ps
CONTAINER ID   IMAGE                                                                       COMMAND                  CREATED       STATUS                    PORTS                                               NAMES
4fa05cee8006   centos:7                                                                    "/bin/bash"              3 hours ago   Up About a minute  

重新进入容器 输入要今日的容器CONTAINER ID
root@ubuntu:/home/hello/Desktop# docker  exec -it 4fa05cee8006 /bin/bash
[root@4fa05cee8006 /]# 

2、docker 镜像源的更换

更换Docker镜像源可以帮助你加快镜像的下载速度,特别是在网络连接较慢的情况下。以下是更换Docker镜像源的一些步骤和方法:

1. 备份原始源文件

在进行任何更改之前,你应该首先备份原始的源文件。打开终端,运行以下命令:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 

该命令将源文件/etc/apt/sources.list 复制到/etc/apt/sources.list.bak ,以便于将来的恢复。

2. 编辑源文件

接下来,你需要编辑源文件/etc/apt/sources.list 。可以使用文本编辑器,如nanovim,打开该文件:

sudo nano /etc/apt/sources.list 

或者

sudo vim /etc/apt/sources.list 

然后,你可以将原始源文件的内容替换为国内的镜像源地址。例如,你可以选择阿里源、中国科学技术大学源等。以下是一些示例源地址:

# 阿里源 
deb http://mirrors.aliyun.com/ubuntu/  bionic main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/  bionic-security main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/  bionic-updates main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/  bionic-backports main restricted universe multiverse 
 
# 中国科学技术大学源 
deb http://mirrors.ustc.edu.cn/ubuntu/  bionic main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu/  bionic-security main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu/  bionic-updates main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu/  bionic-backports main restricted universe multiverse 

保存更改并关闭编辑器。然后使用Ctrl + X关闭编辑器。

3. 更新源列表

编辑完成后,你需要更新源列表以使更改生效。运行以下命令:

sudo apt update 

这将更新包管理器的缓存,并使新的源地址生效。

4. 验证源是否已经更换

你可以通过运行以下命令来验证源是否已经更换为新的源:

sudo apt-cache policy docker-ce 

如果输出中显示了新的源地址,则说明更换源成功。

5. 更换Docker镜像源

如果你只想更换Docker镜像源,而不是整个系统的源,你可以编辑Docker的配置文件daemon.json 。找到或创建该文件,然后在文件中写入新的镜像源地址。例如:

{ "registry-mirrors": ["https://your-mirror-address"] }

保存文件并重启Docker服务以使更改生效:

sudo systemctl restart docker 

  三、 容器基本命令

创建Apache容器后台运行

要在后台运行一个Apache容器,可以使用以下命令:
docker container run -d --rm -p 8080:80 httpd 

    -d:在后台运行容器。
    --rm:容器停止后自动删除。
    -p 8080:80:将主机的8080端口映射到容器的80端口。
    httpd:使用的镜像名称。

测试Apache容器
使用curl命令测试Apache容器是否正常运行:
curl localhost:8080 

常用命令
以下是一些常用的Docker命令:
查看所有容器
列出所有正在运行的容器:
docker container ls 

登陆后台运行的容器
要登录到正在运行的容器中,可以使用以下命令:
docker exec -it <container_id> /bin/bash 

注意:docker exec命令中的-it选项用于交互式操作。
停止容器

停止一个正在运行的容器:
docker container stop <container_id> 

挂载宿主机目录
在运行容器时挂载宿主机的目录到容器中:
docker container run -d --rm -p 8080:80 -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd 

-v /home/user/webroot/:/usr/local/apache2/htdocs/:将宿主机的/home/user/webroot/目录挂载到容器的/usr/local/apache2/htdocs/目录。

侦听宿主机80端口
要在宿主机的80端口上侦听,可以使用以下命令:
docker container run -d --rm --network host -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd 
  --network host:使用宿主机的网络命名空间,直接在宿主机的80端口上侦听。

查看Docker后台进程
列出所有正在运行的容器
使用以下命令列出所有正在运行的容器:
docker ps 

查看特定容器的进程信息
要查看特定容器的进程信息,可以使用以下命令:
docker top <container_name_or_id> 

未完待续!!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/915432.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux系统编程】第四十六弹---线程同步与生产消费模型深度解析

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、Linux线程同步 1.1、同步概念与竞态条件 1.2、条件变量 1.2.1、认识条件变量接口 1.2.2、举例子认识条件变量 1.2.3、…

力扣(LeetCode)283. 移动零(Java)

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:Java入门知识&#x1f649; &#x1f439;今日诗词:雾失楼台&#xff0c;月迷津渡&#x1f439; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主&#x1f64f; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主…

如何在单片机引脚有限时拓展更多引脚

假设单片机有3个GPIO口可以使用&#xff0c;但是我现在要控制多余3个口的功能怎么办&#xff1f; 这个时候可以用到74LS138&#xff08;3 线&#xff0d;8线译码器&#xff09;&#xff1a; 这个时候我使用三位二进制位可以表示2^3 8个引脚的内容 这种方法经常用于选择数码屏…

go debug日记:protoc -I . helloworld.proto --go_out=plugins=grpc:.错误debug

使用protoc生成go的文件出现bug 运行命令 protoc -I . helloworld.proto --go_outpluginsgrpc:.如图所示 即&#xff0c;没有指定生成的go文件位置&#xff0c;需要在文件中添加 option go_package"path;name";其中 path 表示生成的go文件的存放地址&#xff0c;…

cesium渲染3DTiles模型和glb模型

cesium渲染3DTiles模型和glb模型 相关网站&#xff1a; 1.快速入门&#xff1a;https://cesium.com/learn/cesiumjs-learn/cesiumjs-quickstart/ 2.webpack配置&#xff1a;https://github.com/CesiumGS/cesium-webpack-example#cesium-webpack-example 3.说明文档&#xff…

灰狼优化算法

一、简介 1.1 灰狼优化算法-Grey Wolf Optimizer 通过模拟灰狼群体捕食行为&#xff0c;基于狼群群体协 作的机制来达到优化的目的。&#xff27;&#xff37;&#xff2f;算法具有结构简单、需 要调节的参数少、容易实现等特点&#xff0c;其中存在能够自适应调整 的收敛因子…

新日撸java三百行` 新手小白java学习记录 `Day1

新日撸java三百行新手小白java学习记录 Day1 模拟多线程回调机制 文章目录 新日撸java三百行 新手小白java学习记录 前言一 、模拟异步机制提出问题解决方案 前言 古人称长江为江&#xff0c;黄河为河。长江水清&#xff0c;黄河水浊&#xff0c;长江在流&#xff0c;黄河也在…

【Unity Bug 随记】unity version control 报 xx is not in a workspace.

可能原因是更改了仓库或者项目名称。 解决办法就是重置Unity Version Control&#xff0c;去Hub disconnect 然后重新connect cloud和UVC UVC可能连不上&#xff0c;直接进入项目就行&#xff0c;打开版本管理标签会让你重新连工作区&#xff0c;选择你的仓库和工作区 然后In…

Go语言入门教案

文章目录 一、教学目标二、教学重难点&#xff08;一&#xff09;重点&#xff08;二&#xff09;难点 三、教学方法四、教学过程&#xff08;一&#xff09;Go语言简介&#xff08;二&#xff09;环境搭建1. 下载和安装Go语言开发环境2. 配置Go语言环境变量3. 命令行查看Go语言…

[2024最新] java八股文实用版(附带原理)---java集合篇

介绍一下常见的list实现类&#xff1f; ArrayList 线程不安全&#xff0c;内部是通过数组实现的&#xff0c;继承了AbstractList&#xff0c;实现了List&#xff0c;适合随机查找和遍历&#xff0c;不适合插入和删除。排列有序&#xff0c;可重复&#xff0c;当容量不够的时候…

7天用Go从零实现分布式缓存GeeCache(学习)(3)

目录结构 ├── geecache │ ├── byteview.go │ ├── cache.go │ ├── consistenthash │ │ ├── consistenthash.go │ │ └── consistenthash_test.go │ ├── geecache.go │ ├── go.mod │ ├── http.go │ ├── lru │ …

OpenHarmony-1.启动流程

OpenHarmony启动流程 1.kernel的启动 流程图如下所示&#xff1a;   OpenHarmony(简称OH)的标准系统的底层系统是linux&#xff0c;所以调用如下代码&#xff1a; linux-5.10/init/main.c: noinline void __ref rest_init(void) {struct task_struct *tsk;int pid;rcu_sch…

HTB:Precious[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机TCP端口进行开放扫描 使用curl访问靶机80端口 使用ffuf爆破一下子域 使用浏览器访问该域名 使用curl访问该域名响应头 使用exiftool工具查看该pdf信息 横向移动 USER_FLAG&#xff1a;adf5793a876a190f0c08b3b6247cec32…

jsmind 思维导图 + monaco-editor + vue3 + ts

Index.vue: <template><div class"m-jsmind-wrap"><div class"m-jsmind-header"><el-button type"primary" click"() > handleReset()">重置</el-button><el-button type"primary" cl…

在arm64架构下, Ubuntu 18.04.5 LTS 用命令安装和卸载qt4、qt5

问题&#xff1a;需要在 arm64下安装Qt&#xff0c;QT源码编译失败以后&#xff0c;选择在线安装&#xff01; 最后安装的版本是Qt5.9.5 和QtCreator 4.5.2 。 一、ubuntu安装qt4的命令(亲测有效)&#xff1a; sudo add-apt-repository ppa:rock-core/qt4 sudo apt updat…

AIGC学习笔记(5)——AI大模型开发工程师

文章目录 AI大模型开发工程师004 垂直领域的智能在线搜索平台1 智能在线搜索平台需求分析大模型不够“聪明”增强大模型的方式需求分析2 智能在线搜索平台方案设计方案设计技术选型大模型版本GLM-4大模型注册使用Google Cloud平台注册创建可编程的搜索引擎3 智能在线搜索平台代…

【React】状态管理之Redux

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 状态管理之Redux引言1. Redux 的核心概念1.1 单一数据源&#xff08;Single Sou…

Unity类银河战士恶魔城学习总结(P124 CharacterStats UI玩家的UI)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了玩家属性栏&#xff0c;仓库&#xff0c;物品栏UI的制作 UI_StatSlot.cs 这个脚本是用来在Unity的UI上显示玩家属性&#xf…

蓝桥杯每日真题 - 第7天

题目&#xff1a;&#xff08;爬山&#xff09; 题目描述&#xff08;X届 C&C B组X题&#xff09; 解题思路&#xff1a; 前缀和构造&#xff1a;为了高效地计算子数组的和&#xff0c;我们可以先构造前缀和数组 a&#xff0c;其中 a[i] 表示从第 1 个元素到第 i 个元素的…

Llama旋转位置编码代码实现及详解

旋转位置编码RoPE 在旋转位置编码与Transformer和BERT之间的区别中介绍了旋转位置编码&#xff08;RoPE&#xff09;的特点和优势&#xff0c;这种输入长度动态可变的优势使得在Llama编码时&#xff0c;不需要掩码将多余的嵌入掩住。为了详细了解RoPE是如何实现的&#xff0c;…