用Docker搭建环境部署Ctf题目(过程及问题解决)

17 篇文章 0 订阅

用Docker部署Ctf题目(过程及问题解决)

1.Docker基础

什么是Docker

Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。

因为docker微环境的特性,使CTF题目的部署变得简单很多

图片

一个完整的Docker有以下几个部分组成

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

更多Docker的知识:https://baike.baidu.com/item/docker/13344470

Docker的安装

参考菜鸟教程:https://www.runoob.com/docker/ubuntu-docker-install.html

安装失败,请首先检查网络链接,排除网络原因,速度慢可以设置Docker镜像加速。

Docker的使用

使用之前请先启动docker服务

如centos使用命令:

systemctl start docker
Docker客户端

docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。

[root@localhost docker]# docker

图片

可以通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。

Docker镜像

如果本地没有镜像,可以使用docker search[OPTIONS] Dockers Hub(免费注册使用)查找镜像

docker search lamp

图片

参数说明:

NAME: 镜像仓库源的名称

DESCRIPTION: 镜像的描述

OFFICIAL: 是否 docker 官方发布

stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。

AUTOMATED: 自动构建。

以使用 docker pull 命令来载入镜像:

docker pull tutum/lamp #随便pull了一个镜像

图片

随即进入下载流程

下载完成后可以使用docker images查看所有镜像

Docker容器

有了镜像就可以创建一个容器,可以理解成docker就是一个微型虚拟机,容器就是我们跑起来的虚拟机,镜像就像虚拟机版的系统,开机就能用。

启动容器

docker run -it ubuntu /bin/bash

图片

**

启动已停止运行的容器

在停止的正在运行的容器前,先考虑下如何选择要停止的容器,首先查看所有的容器命令

docker ps -a

图片

可以看到所有容器,及他们的状态信息(STATUS)

前边container ID,这是容器的短id,短id就是docker真实id的前半部分,因为真实id太长,不方便输入,所以日常可以使用短id,也就是通过短id来指向容器

**

使用 docker start 启动一个已停止的容器:

docker start b750bbbcfd88

图片

关于docker容器具体使用方法参考:https://www.runoob.com/docker/docker-container-usage.html

新建一个docker容器,并映射端口号

docker run -d -p [host port]:[docker port] [image]
#-d //容器后台运行。
#-p //指定映射端口。

图片

docker ps中可以看到映射关系

图片

在主机与容器之间数据拷贝

docker cp [本地路径] [container id]:[container 路径]

删除容器

docker rm [container id]
#需要先把容器停掉

删除docker镜像

docker rmi [image id]
#需要先删除容器

2.部署步骤

1.首先找一个有lamp环境的docker镜像

docker search lamp

图片

2.拉取镜像

docker pull tutum/lamp

图片

出现报错,检查网络,若是虚拟机可以尝试更换网络适配器模式为NAT

3.下载完毕后查看本地镜像

图片

4.新建docker容器

docker run -d -p 10000:80 -p 13307:3306 tutum/lamp
#映射端口前首先确定端口没有被占用
#-d //容器后台运行。
#-p //指定映射端口。
#-P //随机映射高端口

图片

如果在启动过程中出现报错,先尝试重启服务,如果无法解决,参考解决方法

解决方式:

第一步:在宿主机上执行echo “net.ipv4.ip_forward=1” >>/usr/lib/sysctl.d/00-system.conf

图片

第二步:重启network和docker服务

[root@localhost /]# systemctl restart network && systemctl restart docker

第三步:验证是否成功

图片

5.查看系统中运行的docker容器

图片

6.使用浏览器访问,查看是否成功映射

图片

7.环境已经搭建完毕,可以将ctf题目源码拷贝到container的主目录中

docker cp Friss c7275ea0259a:var/www/html

图片

8.进入docker container

docker exec -it 243c32535da7 /bin/bash
#如果从这个容器退出,不会导致容器的停止,推荐使用 docker exec
#-i //让容器的标准输入保持打开。
#-t //让docker分配一个伪终端并绑定到容器的标准输出上。

图片

9.进入容器中的数据库,创建好ctf题目需要的数据库、数据表等等(数据库密码为空)

图片

10.访问目标网站

图片

成功搭建完成环境

11.导出容器

docker export 1e560fca3906 > Find.tar

图片

  • 14
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OceanSec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值