【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
相关推荐
A小辣椒11 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒15 小时前
TShark:基础知识
linux
AlfredZhao17 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux