【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
相关推荐
硅基手札22 分钟前
SPI技术系列 12 · SPI 设备驱动实战
linux·驱动开发·单片机·嵌入式硬件·mcu·性能优化·系统架构
chu_bingzhi29 分钟前
GNU 汇编器
服务器·gnu
不悔哥40 分钟前
ESP32上跑 Linux: 乐鑫给 ESP32-S31开放了官方 BSP
linux·嵌入式硬件·开源
syagain_zsx44 分钟前
WebSocket 教程:websocketpp 写 echo 服务端
linux·网络·c++·websocket·网络协议·工具库
北京阿尔泰科技厂家1 小时前
阿尔泰SC5061八串口联网服务器技术解析与工程应用指南
服务器·物联网·串口服务器·串口通讯·远程监测·自动化控制·工业测试测量
无足鸟ICT1 小时前
【RHCA+】_etc_yum.repos.d_文件名.repo
linux·运维·centos
骑着蜗牛撵大象3271 小时前
字节序、TLV 到 netlink:Linux 网络消息的编解码全链路
linux·网络·php·etl·序列化·字节序·tlv
tianyuanwo1 小时前
RPM Spec中Name: %{?scl_prefix}xxx中增加宏定义的设计原理
linux·服务器·rpm·scl
cc_瀚海知行1 小时前
工具调用 6|助手什么时候该停下来?
java·服务器·前端·人工智能·python·ai
学逆向的1 小时前
C 可变量参数
c语言·开发语言·网络安全