渗透测试---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.tardocker 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容器
声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人一律不承担一切后果 目录 一、Docker的作用与优势 二、docker的核心…...
【go从零单排】Atomic Counters原子计数
🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,原子计数器(Atomic Counters)是…...
VSCode中python插件安装后无法调试
问题 VSCode中python插件安装后无法调试,如下,点击调试,VScode中不报错,也没有调试 解决方法 1、查看配置 打开所在路径 2、拷贝 将整个文件夹拷贝到vscode默认路径下 3、问题解决 再次调试,可以正常使用了…...
用react实现radio同时关联proform组件
实现: <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比较小众,在1980年左右由Stepstone公司的Brad Cox和Tom Love发明。后来NeXT公司获得ObjC语言使用权,再后来到1996年NeXT被苹果公司收购也变成苹果公司使用,Mac市场占有率本身就不高,ObjC没有太多程序员。在移动互…...
TCP连接如何保障数据传输安全
TCP连接保障数据传输安全主要通过以下几个机制实现: 1、建立连接:TCP通过三次握手过程建立连接,确保通信双方实体真实存在,为后续的可靠数据传输打下基础。 2、序号机制:TCP为每个传输的数据包分配一个序号ÿ…...
【论文复现】ChatGPT多模态命名实体识别
📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ChatGPT ChatGPT辅助细化知识增强!1. 研究背景2. 模型结构和代码3. 任务流程第一阶段:辅助精炼知识启发式生成第二阶段…...
管理 Elasticsearch 变得更容易了,非常容易!
作者:来自 Elastic Ken Exner Elasticsearch 用户,我们听到了你的心声。管理 Elasticsearch 有时会变得很复杂,面临的挑战包括性能调整、问题检测和资源优化。我们一直致力于简化你的体验。今天,我们宣布了自收购 Opster 以来的一…...
SynchronousQueueworkQueue.offer() 和 poll() 方法的超时控制及线程池的讨论
2024.11.12 11:26 问:workQueue.offer(command) 这里 workQueue.poll(keepAlive, TimeUnit.NANOSECONDS) : 这里的 workQueue.offer(command) 没有超时时间控制? Claude 3.5 Haiku 非常好的问题!我来详细解释 offer() 和 poll() 方法的区别…...
自动驾驶---“火热的”时空联合规划
1 背景 早期的不少规划算法都是横纵分离的(比如Apollo),先求解path之后,依赖path的结果再进行speed的求解。这种横纵解耦的规划方式具有以下特点: 相对较为简单,计算量通常较小,容易实现实时性要求。但是由于分别规划横向和纵向运动,可能会忽略两者之间的耦合关系,导致…...
命令行工具进阶指南
🚀 命令行工具进阶指南:Git、Shell与效率工具的进阶之路 掌握命令行工具,让你的开发效率突飞猛进。本文将深入探讨 Git 高级技巧、Shell 脚本自动化以及各种效率倍增的 CLI 工具。 📑 目录 Git 高级技巧与工作流Shell 脚本自动化…...
扫雷游戏代码分享(c基础)
hi , I am 36. 代码来之不易👍👍👍 创建两个.c 一个.h 1:test.c #include"game.h"void game() {//创建数组char mine[ROWS][COLS] { 0 };char show[ROWS][COLS] { 0 };char temp[ROWS][COLS] { 0 };//初始化数…...
基于vue框架的的社区居民服务管理系统8w86o(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
系统程序文件列表 项目功能:居民,楼房信息,报修信息,缴费信息,维修进度 开题报告内容 基于Vue框架的社区居民服务管理系统开题报告 一、研究背景与意义 随着城市化进程的加速,社区居民数量激增,社区管理面临着前所未有的挑战。传统的社区…...
一分钟快速熟悉makedown
Markdown 是一种轻量级标记语言,广泛用于编写文档、撰写博客、创建 README 文件等。它的语法简单易学,能够快速生成格式化的文本。以下是 Markdown 的一些常用语法和示例: 1. 标题 Markdown 支持六级标题,使用 # 符号表示。 # …...
P8649 [蓝桥杯 2017 省 B] k 倍区间:同余,前缀和,组合数,区间个数
题目描述 给定一个长度为 NN 的数列,A1,A2,⋯ANA1,A2,⋯AN,如果其中一段连续的子序列 Ai,Ai1,⋯Aj(i≤j)Ai,Ai1,⋯Aj(i≤j) 之和是 KK 的倍数,我们就称这个区间 [i,j][i,j] 是 KK 倍区间。 你能求出数列中总共有多少个 KK 倍区…...
产业与学术相互促进,2024年OEG海上能源博览会助力全球能源可持续发展
10月30日至31日,2024年OEG海上能源全产业链博览会在上海跨国采购会展中心成功举办。本次大会系全球海洋工程与高端装备领域的年度国际交流盛会——第十一届全球FPSO&FLNG&FSRU大会,同期举办第七届亚洲海洋风能大会。本次大会暨博览会由上海船舶工…...
【GDB调试】智慧中控项目的调试
一.在执行的智慧中控项目的时候,喊语音模块唤醒(小欣小欣)的时候遇到了:Segmentation fault 段错误 二.遇到段错误,一般是以下情况: “Segmentation fault”(段错误)是Linux系统中常见的程序异常终止信号。…...
《一本书讲透 Elasticsearch》京东评论采集+存储+可视化全 AI 实现
经常和出版社编辑老师交流读者的反馈。毕竟是小众书籍,豆瓣评分的人并不多。 而京东作为主要读书销售渠道,非常有必要整合一下京东读者评论,看看读者们都说了什么,以便后续的改进! 一条条的翻看非常不方便,…...
uniapp中webview全屏不显示导航栏解决方案
uniapp官网文档地址: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 旨在实现快速迭代,并让程序员能够创建内容创建工具和可视化/调试工具…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...






















