【Web安全】-云服务器与Docker(2):Docker镜像操作,Docker容器操作,Docker搭建漏洞靶场



🦆 个人主页:深邃-

❄️专栏传送门:《C语言》《数据结构与算法》《Web安全》

🌟Gitee仓库:《C语言》《数据结构与算法》


目录

Docker镜像操作

Docker镜像操作也就是对镜像进行下载、运行、查看、删除、等

切换权限

docker的使用必须使用管理员权限才可以,所以必须切换到root

bash 复制代码
sudo su root 

然后输入kali的密码进入到root权限

列出镜像

  1. 列出镜像
bash 复制代码
docker images -a


目前什么也没有
显示如下信息:

名称 描述
REPOSITORY 镜像所在的仓库名称
TAG 镜像标签
IMAGE ID 镜像 ID(类似镜像的身份证号)
CREATED 镜像的创建日期(不是获取该镜像的日期)
SIZE 镜像大小

下载镜像

上一篇文章我们已经将Docker的镜像源配置好了,接下来我们拉取镜像源

要下载公共仓库中的镜像,可以使用 docker image pull 命令,后跟镜像的名称和标签

bash 复制代码
docker pull library/hello-world:latest
  • library: 这是 Docker Hub 上的默认命名空间 ,用于存放官方提供的镜像。使用 library 命名空间可以确保你拉取的是官方维护的镜像 。由于 Docker 官方的镜像默认位于 library 组下,因此可以省略 library
  • hello-world: 这是镜像的名称。hello-world 是一个非常基础的镜像,通常用于验证 Docker 是否安装成功
  • latest: 这是镜像的标签Docker 镜像可以有多个标签,用于区分不同的版本。latest 标签通常用于表示镜像的最新版本 。不指定镜像标签,默认拉取latest标签镜像
  • 所以下载官方的镜像默认版本可以省略 命令空间和标签

轩辕镜像

1、下载hello-world

bash 复制代码
docker pull hello-world

2、下载ubuntu

bash 复制代码
docker pull ubuntu


删除镜像

要删除一个镜像,可以使用 docker rmi 命令,后面跟上镜像名称或镜像ID。

bash 复制代码
sudo docker rmi ID号

注意:

  • 如果镜像正在被一个或多个容器使用,则无法删除。需要先删除使用该镜像的容器。
  • 在执行镜像操作时,请确保您使用的是正确的镜像名称和标签。
  • 删除镜像前,请确保没有运行的容器依赖于该镜像,以免影响容器的正常运行。

Docker容器操作

下载的镜像被运行起来就叫容器

运行容器

创建并运行一个容器,可以使用 docker run 命令,格式如下:

bash 复制代码
docker run [option] image_name [command]
  • option 是可选参数
  • image_name 是镜像的名称
  • command 是在容器启动时执行的命令

启动容器

bash 复制代码
docker run -itd --name=启动的容器名字(自定义) 镜像名或者ID /bin/bash
  • -i:以交互模式运行容器。
  • -t:分配一个伪终端,容器启动后会进入容器命令行
  • -d:以守护式模式运行容器,在后台运行。
  • --name:为容器指定一个名称。
  • /bin/bash:启动容器后在容器中打开一个bash

实例如下:

bash 复制代码
docker run -itd --name=ubuntu e0f16e6366fe /bin/bash

列出容器

bash 复制代码
docker ps 列出正在运行中的容器
docker ps -a 列出所有已经创建的容器(包括运行中和停止的)

进入容器

要进入正在运行的容器:

bash 复制代码
docker exec -it container_name_or_id command
  • exec:用于在已经运行的容器中执行命令
  • -i:以交互模式运行容器。
  • -t:分配一个伪终端,容器启动后会进入容器命令行
  • container_name_or_id 表示容器名或容器id
  • command 表示进入容器后执行的第一个命令

例如,进入名为 ubuntu 的容器并执行 /bin/bash,打开一个Bash shell终端:

bash 复制代码
docker exec -it ubuntu /bin/bash

停止容器

停止一个已经在运行的容器

bash 复制代码
docker stop 容器名或容器id

启动容器

启动一个已经停止的容器

bash 复制代码
docker start 容器名或容器id

删除容器

删除一个容器

bash 复制代码
docker rm 容器名或容器id

Docker搭建漏洞靶场

Vulhub是一个开源的、即开即用的漏洞靶场环境集合。无需Docker基础,只需一条命令即可快速启动用于安全研究、学习或演示的漏洞环境。

Vulhub靶场搭建

(1) 靶场地址

bash 复制代码
https://gitee.com/yijingsec/vulhub

(2) 下载靶场

bash 复制代码
git clone https://gitee.com/yijingsec/vulhub.git

(3) 启动靶场

vulhub文件夹中有很多常见的nday漏洞靶场,想要复现那个就进入到对应目录下启动即可

找到docker-compose.yml配置文件

你当前在 Kali 里执行了 cat docker-compose.yml,输出的内容是 Vulhub 里 CVE-2012-2122 漏洞环境的配置文件:

yaml 复制代码
version: '2'
services:
  mysql:
    image: vulhub/mysql:5.5.23
    ports:
      - "3306:3306"
  • version: '2':指定 Docker Compose 文件的版本
  • services:定义要启动的服务,这里只启动了 mysql
  • image: vulhub/mysql:5.5.23:指定使用的镜像,是 Vulhub 封装好的、带漏洞的 MySQL 5.5.23
  • ports: - "3306:3306":把容器的 3306 端口映射到宿主机的 3306 端口,这样你在 Kali 里就能连接到这个 MySQL 服务了

启动的命令如下

bash 复制代码
docker-compose up -d

该命令会自动下载镜像、自动创建和启动容器,不需要额外手动操作

(4) 访问靶场

1、查看容器启动情况

bash 复制代码
docker ps


2、找到对应的端口,此处为 8080

主机用浏览器IP:端口访问靶场

(5) 删除靶场

bash 复制代码
docker-compose down
相关推荐
慢慢向上的蜗牛1 小时前
Atlas300I推理卡驱动适配Linux 6.12+内核
linux·c++·人工智能·华为·驱动·底层开发·ascend
谪星·阿凯1 小时前
内网信息收集技术博客
安全·web安全·网络安全·php
霸时斌子1 小时前
/etc/fstab 重复挂载条目
linux·安全
techdashen1 小时前
你的社交数据,凭什么归平台所有?用 Cloudflare 搭建去中心化社交应用
服务器·去中心化·php
流浪0011 小时前
Linux基础篇 (一) 不费力掌握入门级命令
linux·运维·服务器
楼田莉子1 小时前
仿Muduo的高并发服务器:基于Tcp协议的回显服务器
linux·服务器·c++·后端
承渊政道1 小时前
CentOS 7部署Elasticsearch完整流程:避坑、基础操作、远程访问
java·linux·elasticsearch·系统架构·centos·远程工作·持续部署
Sombra_Olivia2 小时前
Vulhub 中的 Cacti-CVE-2023-39361
安全·web安全·渗透测试·vulhub
研究点啥好呢2 小时前
面馆开业!客官,你的面(经)好了!
python·阿里云·docker·面试·reactjs·求职招聘·react