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

渗透测试---docker容器

声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人一律不承担一切后果

目录

一、Docker的作用与优势

二、docker的核心组件

三、Docker与传统虚拟机的对比

四、实际应用场景

 五、Docker的安装和配置

命令更新:“sudo apt-get update”

“sudo apt-get install docker.io”,安装 Docker

启用docker

创建或编辑/etc/docker/daemon.json文件

配置docker镜像源

重新加载配置文件

重启docker服务

六、 docker拉取镜像与运行容器

拉取CentOS 7官方镜像

docker images 查看镜像

运行一个基于 CentOS 7 镜像的容器:

创建 Apache 容器后台运行

七、 docker常用命令

 “docker container ls”:查看所有容器。

 “docker ps”:列出所有正在运行的容器。

“docker exec -it 《ID》 /bin/bash”:进入特定容器。

 “docker container stop 《ID》”:停止容器。

 “docker container run -d --rm -p 8080:80 -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd”:挂载宿主机目录运行容器。

 “docker top ”:查看特定容器的进程信息。

导出和导入容器

导出容器

导入容器快照

删除容器

删除镜像

八、下载自定义和多运行多镜像容器工具docker-compose

 介绍

安装

创建docker-compose文件

启动服务

停止服务



一、Docker的作用与优势

Docker 是一种开源的应用容器引擎,它允许开发者将应用及其依赖打包成一个轻量级、可移植的容器,然后这个容器可以在任何支持Docker的平台上运行,无论是物理机、虚拟机、云服务还是数据中心。Docker的核心优势在于它的容器技术,这种技术提供了与虚拟机相比更为高效、快速且一致的运行环境。

二、docker的核心组件

  • 镜像(Image):Docker镜像是用来创建容器的模板,它是一个特殊的文件系统,包含了运行应用所需的代码、库、环境变量和配置文件。镜像是静态的,内容在构建后不会改变。

  • 容器(Container):容器是镜像的运行实例,它是隔离的、独立运行的环境,可以被创建、启动、停止、删除和暂停。容器在运行时会创建一个可写层,与镜像的只读层相结合,形成容器的文件系统。

  • 仓库(Repository):Docker仓库是用来存放镜像的地方,可以理解为代码仓库。用户可以将自己创建的镜像上传到仓库中,也可以从仓库中下载其他人分享的镜像。

三、Docker与传统虚拟机的对比

Docker容器与传统虚拟机相比,具有启动速度快、占用资源少、性能损耗低等优势。在Docker容器中,多个容器可以共享宿主机的内核,而传统虚拟机则需要为每个虚拟机实例运行一个完整的操作系统。这使得Docker容器在系统资源利用、应用部署和运行效率方面都优于传统虚拟化技术。

四、实际应用场景

Docker的应用场景非常广泛,从简单的微服务架构到复杂的分布式系统,都可以利用Docker的容器技术进行快速部署和高效管理。例如,开发者可以在本地使用Docker容器开发和测试应用,然后将容器部署到云服务上运行,无需担心环境不一致导致的问题。

总之,Docker通过其容器技术,为软件开发和运维提供了一种更加灵活、高效和可靠的解决方案,使得应用的打包、分发、部署和运行变得更加简单和标准化。

 五、Docker的安装和配置

更换kali镜像源使下载更快

#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

在vim /etc/apt/sources.list

并wq保存退出

命令更新:“sudo apt-get update”

“sudo apt-get install docker.io”,安装 Docker

启用docker

sudo service docker start

sudo docker ps:验证是否正常启动

创建或编辑/etc/docker/daemon.json文件

配置docker镜像源

重新加载配置文件

重启docker服务

六、 docker拉取镜像与运行容器

拉取CentOS 7官方镜像

sudo docker pull centos:7

docker images 查看镜像

运行一个基于 CentOS 7 镜像的容器:

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

  • -it 选项允许你交互式地运行容器。
  •     --name my_centos7 给容器命名为my_centos7。
  •     执行上述命令后,你会进入到一个新的CentOS 7容器中,可以在这个环境中执行CentOS 7系统的命令。
  •     centos:7 指定使用的镜像。
  •     /bin/bash 启动容器后执行的命令,这里启动了bash让你能与容器交互。

创建 Apache 容器后台运行

docker container run -d --rm -p 8080:80 httpd

  • docker container run:用于创建并启动一个新的容器。
  • -d:以分离模式运行容器,即在后台运行。
  • --rm:容器停止后自动删除。这对于避免容器停止后留下一堆未使用的容器很有帮助。
  • -p 8080:80:将主机上的 8080 端口映射到容器的 80 端口。这意味着您可以通过在浏览器中访问 http://localhost:8080 来访问运行在容器中的 web 服务器。
  • httpd:这是要使用的镜像,指的是在 Docker Hub 上提供的官方 Apache HTTP 服务器镜像。

七、 docker常用命令

 “docker container ls”:查看所有容器。

 “docker ps”:列出所有正在运行的容器

“docker exec -it 《ID》 /bin/bash”:进入特定容器

  • docker exec: 这个命令用于在运行中的容器内执行命令。
  • -it: 这两个选项一起使用:
    • -i:保持标准输入的打开,允许您与容器交互。
    • -t:分配一个伪终端,这样您可以使用交互式命令行。
  • 《ID》: 这是您要进入的容器的名称或 ID。请确保这个 ID 或名称是正在运行的容器。
  • /bin/bash: 这是您希望在容器内执行的命令。在这里,它表示启动一个 Bash shell,这样您就可以直接在容器内操作。

 “docker container stop 《ID》”:停止容器

 “docker container run -d --rm -p 8080:80 -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd”:挂载宿主机目录运行容器。

以/home/kali为例。容器的目录已经挂载到了宿主机了。

 “docker top <container_name_or_id>”:查看特定容器的进程信息

导出和导入容器

导出容器

如果要导出本地某个容器,可以使用 docker export 命令。导出为tar文件

docker export 1e560fca3906 > ubuntu.tar
docker export 1e560fca3906 -o ubuntu2.tar
导入容器快照
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
$ docker import docker/ubuntu.tar test/ubuntu:v1
  • -:表示从标准输入中读取数据

删除容器

删除容器使用 docker rm 命令:

docker rm -f <ID>
  • -f:强制删除正在运行的容器。如果容器正在运行,需要添加此选项才能删除它。

删除镜像

镜像删除使用 docker rmi 命令,比如我们删除 hello-world 镜像:

docker rmi hello-world

八、下载自定义和多运行多镜像容器工具docker-compose

 介绍

docker-compose 是一个用于定义和运行多容器 Docker 应用程序的工具。可以使用 YAML 文件来配置应用程序的服务,然后通过一个命令来启动所有服务。

安装

apt install docker-compose

或者

运行以下命令以下载 Docker Compose 的当前稳定版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

创建docker-compose文件

vim docker-compose.yml

示例

version: '3.8'  services:  web:  image: httpd  ports:  - "8080:80"  volumes:  - ./html:/usr/local/apache2/htdocs/  db:  image: mysql:5.7  environment:  MYSQL_ROOT_PASSWORD: example  volumes:  - db_data:/var/lib/mysql  volumes:  db_data:

启动服务

在包含 docker-compose.yml 文件的目录中,您可以使用以下命令启动所有定义的服务:

docker-compose up

如果您希望它在后台运行,可以加上 -d 参数:

停止服务

docker-compose down
  • docker-compose ps:列出当前正在运行的服务。
docker-compose ps
  • docker-compose logs:查看服务的日志。
docker-compose logs
  • docker-compose exec <service> <command>:在指定服务的容器中执行命令。
docker-compose exec <service> <command>

好啦,以上就是本文的内容,希望对你有所帮助咯。。

相关文章:

渗透测试---docker容器

声明&#xff1a;学习素材来自b站up【泷羽Sec】&#xff0c;侵删&#xff0c;若阅读过程中有相关方面的不足&#xff0c;还请指正&#xff0c;本文只做相关技术分享,切莫从事违法等相关行为&#xff0c;本人一律不承担一切后果 目录 一、Docker的作用与优势 二、docker的核心…...

【go从零单排】Atomic Counters原子计数

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 在 Go 语言中&#xff0c;原子计数器&#xff08;Atomic Counters&#xff09;是…...

VSCode中python插件安装后无法调试

问题 VSCode中python插件安装后无法调试&#xff0c;如下&#xff0c;点击调试&#xff0c;VScode中不报错&#xff0c;也没有调试 解决方法 1、查看配置 打开所在路径 2、拷贝 将整个文件夹拷贝到vscode默认路径下 3、问题解决 再次调试&#xff0c;可以正常使用了…...

用react实现radio同时关联proform组件

实现&#xff1a; <ProFormRadio.GroupradioType{button}name{[bodyConfig, format]}label"请求体格式"initialValue{json}options{createTabs}fieldProps{{buttonStyle: solid,wrapperMarginInlineEnd: 20,onChange: e > {let v e.target.value;databaseMod…...

Objective-C 1.0和2.0有什么区别?

Objective-C ObjC比较小众&#xff0c;在1980年左右由Stepstone公司的Brad Cox和Tom Love发明。后来NeXT公司获得ObjC语言使用权&#xff0c;再后来到1996年NeXT被苹果公司收购也变成苹果公司使用&#xff0c;Mac市场占有率本身就不高&#xff0c;ObjC没有太多程序员。在移动互…...

TCP连接如何保障数据传输安全

TCP连接保障数据传输安全主要通过以下几个机制实现&#xff1a; 1、建立连接&#xff1a;TCP通过三次握手过程建立连接&#xff0c;确保通信双方实体真实存在&#xff0c;为后续的可靠数据传输打下基础。 2、序号机制&#xff1a;TCP为每个传输的数据包分配一个序号&#xff…...

【论文复现】ChatGPT多模态命名实体识别

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ChatGPT ChatGPT辅助细化知识增强&#xff01;1. 研究背景2. 模型结构和代码3. 任务流程第一阶段&#xff1a;辅助精炼知识启发式生成第二阶段…...

管理 Elasticsearch 变得更容易了,非常容易!

作者&#xff1a;来自 Elastic Ken Exner Elasticsearch 用户&#xff0c;我们听到了你的心声。管理 Elasticsearch 有时会变得很复杂&#xff0c;面临的挑战包括性能调整、问题检测和资源优化。我们一直致力于简化你的体验。今天&#xff0c;我们宣布了自收购 Opster 以来的一…...

SynchronousQueueworkQueue.offer() 和 poll() 方法的超时控制及线程池的讨论

2024.11.12 11:26 问&#xff1a;workQueue.offer(command) 这里 workQueue.poll(keepAlive, TimeUnit.NANOSECONDS) : 这里的 workQueue.offer(command) 没有超时时间控制&#xff1f; Claude 3.5 Haiku 非常好的问题&#xff01;我来详细解释 offer() 和 poll() 方法的区别…...

自动驾驶---“火热的”时空联合规划

1 背景 早期的不少规划算法都是横纵分离的(比如Apollo),先求解path之后,依赖path的结果再进行speed的求解。这种横纵解耦的规划方式具有以下特点: 相对较为简单,计算量通常较小,容易实现实时性要求。但是由于分别规划横向和纵向运动,可能会忽略两者之间的耦合关系,导致…...

命令行工具进阶指南

&#x1f680; 命令行工具进阶指南&#xff1a;Git、Shell与效率工具的进阶之路 掌握命令行工具&#xff0c;让你的开发效率突飞猛进。本文将深入探讨 Git 高级技巧、Shell 脚本自动化以及各种效率倍增的 CLI 工具。 &#x1f4d1; 目录 Git 高级技巧与工作流Shell 脚本自动化…...

扫雷游戏代码分享(c基础)

hi , I am 36. 代码来之不易&#x1f44d;&#x1f44d;&#x1f44d; 创建两个.c 一个.h 1&#xff1a;test.c #include"game.h"void game() {//创建数组char mine[ROWS][COLS] { 0 };char show[ROWS][COLS] { 0 };char temp[ROWS][COLS] { 0 };//初始化数…...

基于vue框架的的社区居民服务管理系统8w86o(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;居民,楼房信息,报修信息,缴费信息,维修进度 开题报告内容 基于Vue框架的社区居民服务管理系统开题报告 一、研究背景与意义 随着城市化进程的加速&#xff0c;社区居民数量激增&#xff0c;社区管理面临着前所未有的挑战。传统的社区…...

一分钟快速熟悉makedown

Markdown 是一种轻量级标记语言&#xff0c;广泛用于编写文档、撰写博客、创建 README 文件等。它的语法简单易学&#xff0c;能够快速生成格式化的文本。以下是 Markdown 的一些常用语法和示例&#xff1a; 1. 标题 Markdown 支持六级标题&#xff0c;使用 # 符号表示。 # …...

P8649 [蓝桥杯 2017 省 B] k 倍区间:同余,前缀和,组合数,区间个数

题目描述 给定一个长度为 NN 的数列&#xff0c;A1,A2,⋯ANA1​,A2​,⋯AN​&#xff0c;如果其中一段连续的子序列 Ai,Ai1,⋯Aj(i≤j)Ai​,Ai1​,⋯Aj​(i≤j) 之和是 KK 的倍数&#xff0c;我们就称这个区间 [i,j][i,j] 是 KK 倍区间。 你能求出数列中总共有多少个 KK 倍区…...

产业与学术相互促进,2024年OEG海上能源博览会助力全球能源可持续发展

10月30日至31日&#xff0c;2024年OEG海上能源全产业链博览会在上海跨国采购会展中心成功举办。本次大会系全球海洋工程与高端装备领域的年度国际交流盛会——第十一届全球FPSO&FLNG&FSRU大会&#xff0c;同期举办第七届亚洲海洋风能大会。本次大会暨博览会由上海船舶工…...

【GDB调试】智慧中控项目的调试

一.在执行的智慧中控项目的时候&#xff0c;喊语音模块唤醒(小欣小欣)的时候遇到了&#xff1a;Segmentation fault 段错误 二.遇到段错误&#xff0c;一般是以下情况&#xff1a; “Segmentation fault”&#xff08;段错误&#xff09;是Linux系统中常见的程序异常终止信号。…...

《一本书讲透 Elasticsearch》京东评论采集+存储+可视化全 AI 实现

经常和出版社编辑老师交流读者的反馈。毕竟是小众书籍&#xff0c;豆瓣评分的人并不多。 而京东作为主要读书销售渠道&#xff0c;非常有必要整合一下京东读者评论&#xff0c;看看读者们都说了什么&#xff0c;以便后续的改进&#xff01; 一条条的翻看非常不方便&#xff0c;…...

uniapp中webview全屏不显示导航栏解决方案

uniapp官网文档地址&#xff1a;https://uniapp.dcloud.net.cn/api/window/window.html#getappwebview <template><view class"index"><u-navbar :is-back"true" title"标题"" :title-width"650"></u-navb…...

Dear ImGui 使用VS2022编译为静态库

Dear ImGui 是一个无臃肿的 C++ 图形用户界面库。它输出优化的顶点缓冲区,您可以在支持 3D 管道的应用程序中随时渲染这些缓冲区。它速度快、可移植、与渲染器无关且自成一体(无外部依赖项)。 Dear ImGui 旨在实现快速迭代,并让程序员能够创建内容创建工具和可视化/调试工具…...

5G 现网信令参数学习(3) - RrcSetup(1)

目录 1. rlc-BearerToAddModList 1.1 rlc-Config 1.1.1 ul-AM-RLC 1.1.2 dl-AM-RLC 1.2 mac-LogicalChannelConfig 2. mac-CellGroupConfig 2.1 schedulingRequestConfig 2.2 bsr-Config 2.3 tag-Config 2.4 phr-Config 2.5 skipUplinkTxDynamic 3. physicalCellG…...

PHP实现身份证OCR识别API接口

随着社会的发展&#xff0c;身份认证需求不断增长&#xff0c;这与身份证OCR识别技术的发展密切相关。在当今社会&#xff0c;各个领域都需要进行身份认证。传统的人工手动录入身份证信息费时费力&#xff0c;速度慢且容易出错&#xff0c;体验不佳。而身份证 OCR 识别技术通过…...

关于 Qt+Osg中使用背景图HUD受到后绘制几何图形顶点颜色影响 的解决方法

若该文为原创文章&#xff0c;转载请注明出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/143607816 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、Op…...

[CKS] K8S AppArmor Set Up

最近准备花一周的时间准备CKS考试&#xff0c;在准备考试中发现有一个题目关于AppArmor Pod操作权限的问题。 ​ 专栏其他文章: [CKS] Create/Read/Mount a Secret in K8S-CSDN博客[CKS] Audit Log Policy-CSDN博客 -[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS] …...

redis笔记-数据结构

zset zset一方面它是一个 set&#xff0c;保证了内部value 的唯一性&#xff0c;另一方面它可以给每个 value 赋予一个 score&#xff0c;代表这个 value 的排序权重。 zset的底层是由字典和跳表实现。 字典主要用来存储value和score的对应关系。跳表这个数据结构主要用来提…...

webpack的常见配置

Webpack 是一个现代 JavaScript 应用的模块打包工具&#xff0c;用于将项目中的多个文件和依赖打包成浏览器可以识别的文件&#xff0c;通常是一个或多个 JavaScript、CSS 或其他静态资源的 bundle&#xff08;将多个模块或文件合并成一个或几个文件的过程&#xff0c;这些合并…...

text-embedding-ada-002;BGE模型;M3E模型是Moka Massive Mixed Embedding;BERT

目录 text-embedding-ada-002 一、模型概述 二、模型功能 三、模型特点 四、模型应用 五、模型优势 BGE模型 一、模型背景与特点 二、模型性能与表现 三、模型迭代与发展 M3E模型是Moka Massive Mixed Embedding 一、基本信息 二、技术特点 三、应用场景 四、性能…...

WebRTC 环境搭建

主题 本文主要描述webrtc开发过程中所需的环境搭建 环境&#xff1a; 运行环境&#xff1a;ubuntu 20.04 Node.js环境搭建 安装编译 Node.js 所需的依赖包: sudo apt-get update sudo apt-get install -y build-essential libssl-dev 下载 Node.js 源码: curl -sL htt…...

FastHTML快速入门:http方法,CSS文件和内联样式,其他静态媒体文件位置

HTTP方法 FastHTML通过函数名与HTTP方法进行匹配。到目前为止&#xff0c;我们定义的URL路由都是针对HTTP GET方法的&#xff0c;这是网页最常见的方法。 表单提交通常作为HTTP POST发送。在处理更动态的网页设计时&#xff0c;也就是所谓的单页应用&#xff08;SPA&#xff0…...

项目管理和研发管理中的痛点及其解决方案

在现代企业中&#xff0c;研发管理和项目管理面临着多重挑战&#xff0c;包括资源配置不当、沟通不畅、目标不明确、进度控制困难等。这些痛点不仅影响项目的顺利推进&#xff0c;还可能导致企业在市场竞争中处于劣势。尤其是在资源配置不当方面&#xff0c;企业往往难以合理分…...

网站如何做关键词排名/百度建一个网站多少钱

git 使用简介 指导老师&#xff1a;邵志远 作者&#xff1a; 卓达城 邮箱&#xff1a; zhuodcqq.com 单位&#xff1a; 华中科技大学服务计算技术与系统/集群与网格计算实验室 简介&#xff1a; 作者是华中科技大学2010级计算机学院计算机系统结构专业研究…...

php游戏网站建设/sem网站推广怎么做

转载请标明出处&#xff1a;http://blog.csdn.net/xx326664162/article/details/51859106 文章出自&#xff1a;薛瑄的博客 你也可以查看我的其他同类文章&#xff0c;也会让你有一定的收货&#xff01; 问题&#xff1a; 在调试程序的时候&#xff0c;出现这个错误&#xf…...

互联网销售是什么意思/seo技术大师

目录 数据结构 Customer表 Transaction表 Store表 Review表 上传数据 创建目录用于存放数据 把本地文件上传到HDFS上 创建外部表 创建数据库 创建表 数据清洗 对transaction_details中的重复数据生成新ID 过滤掉store_review中没有评分的数据 找出PII (personal …...

dede 网站源码/关键词搜索数据

domino9.0的富文本编辑器ckeditor&#xff0c;在手机上不能使用(不管是在xpages还是在form中不正常使用&#xff0c;可能水平有限&#xff01;)&#xff0c;造成按钮不能提交&#xff0c;所以更换一个控件来处理和显示&#xff0c;在网上试了一下&#xff0c;支持功能还不少&am…...

网站建设 常见问题/百度统计

12345678910111213141516171819202122232425262728293031323334353637383940414243# 迭代# 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)# 在Python中&#xff0c;迭代是通过for ... in来完成的&#xff0c;而很多语言比…...

网站建设方案平台架构/广东队对阵广州队

更多编程教程请到&#xff1a;菜鸟教程 https://www.piaodoo.com/ 友情链接&#xff1a; 高州阳光论坛https://www.hnthzk.com/人人影视http://www.op-kg.com/问题 你想实现一个服务器&#xff0c;通过TCP协议和客户端通信。 解决方案 创建一个TCP服务器的一个简单方法是使…...