0x01 前面的碎碎念
最近社团的服务器重新装了系统,学长装的CTFd被清空了,我要重新装一次。老师还说服务器要给他们实验室做实验用,让我小心点,别搞坏了(手动捂脸)。于是我就决定将整个平台在本机docker里操作,然后打包到服务器上,这样到时候出了问题也怪不到我。
其实这次搭建还是有点野心的,我想实现XCTF那种动态发放容器的功能。这个可能得后面再更新了。
0x02 docker安装
装docker是好久之前装的了,也没什么坑,网上的教程都有,就不演示了。这里推荐菜鸟教程的docker教程,个人认为docker基础用法,这个网站是相对比较完整而且翻译比较好的。
0x03 镜像拉取与容器构建
因为需要完整的操作系统,所以选择了linux,而我自己本身也是用的kali,所以就选择了用的更顺手的ubuntu。默认是最新版本(20.04 LTS),直接
docker pull ubuntu
这里可以选择更换docker国内镜像源加速,如果出现连接失败或者下载速度过慢,可以尝试更换。
因为需要使用这个系统进行LAMP开发,所以不能使用docker自带的端口通信,将不同容器链接(比如菜鸟演示的单独下载nginx和php,并链接起来),实际上,我认为直接使用虚拟系统操作比端口通信更简单(我是懒狗,我摊牌了)
下载后会得到一个镜像ID,使用docker images可以查看所有镜像。
以后调用这个镜像,可以使用直接名字ubuntu,默认使用tag:latest,或者可以使用ID调用。这里说个小技巧,在不会出现歧义的情况下,所有的ID都可以只写前两位。
docker run -dit fb docker run -dit ubuntu
换言之,这两种方法是等效的。
解释一下参数
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
构建镜像后,还需要启动和链接
docker start xx(容器ID) docker attach xx(容器ID)
此时成功进入虚拟机系统。
0x04一些镜像配置
非最小化
需要对系统进行非最小化处理,否则会出现各种依赖错误。这里只需要一行命令
unminimize
这个脚本是系统内置的,在终端输入这行命令一路y就行了。
换源(非必需)
换源的目的是为了加速下载,后面下载的东西多,如果不换的话速度太慢了,但是如果你觉得麻烦可以省去这一步。
在更改sourse.list之前还需要下载CA证书,否则无法换源
使用命令
apt install ca-certificates
因为没有vim,所以只能使用echo进行简单处理。换源前备份一下
cp /etc/apt/sources.list /etc/apt/sources.list.bak
echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse -> /etc/apt/sources.list
输入以下命令
apt update
apt upgarde
apt install vim
下载vim,然后将这个复制到sources.list里
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
0x05打包镜像
到这里可以暂时停止打包一下镜像,如果后面出了问题也方便版本回滚
docker commit 容器id 容器名字:容器标签
-a是标注作者,写不写都行。
今天就写到这,有时间再更