云服务器部署Docker及搭建各类环境
0x00 Why
为什么要搞服务器,为什么要学Docker,为什么要自己搭建靶场?这些都是基本功,逃避是没有用的。
0x01 买服务器
我买的是阿里云的服务器,贴个官网链接:阿里云-计算,为了无法计算的价值 (aliyun.com)
0x02 部署Docker
推荐教程:最详细的ubuntu 安装 docker教程 - 知乎 (zhihu.com)
一. 卸载Ubuntu自带的Docker
以下操作最好用管理员
注:docker的旧版本不一定被称为docker,http://docker.io 或 docker-engine也有可能,所以我们卸载的命令为:
1 | $ apt-get remove docker docker-engine docker.io containerd runc |
如果报错也正常,有些Ubuntu没有Docker,直接下一步。
二. 安装Docker及相关配置
· 更新软件包和已安装的软件的版本:
1 | apt update |
· 安装Docker依赖:
Docker在Ubuntu上依赖一些软件包。执行以下命令来安装这些依赖:
1 | apt-get install ca-certificates curl gnupg lsb-release |
· 添加Docker官方GPG密钥
执行以下命令来添加Docker官方的GPG密钥:
1 | curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - |
· 添加Docker软件源
1 | add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" |
· 安装Docker(可算进入正题了)
1 | apt-get install docker-ce docker-ce-cli containerd.io |
· 配置用户组
默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。命令如下:
1 | usermod -aG docker $USER |
注:重新登录才能使更改生效。
· 运行Docker
启动一下Docker看看有没有安装成功
1 | systemctl start docker |
· 安装工具(执行指令即可,原理我也不懂)
1 | apt-get -y install apt-transport-https ca-certificates curl software-properties-common |
· 重启Docker
1 | service docker restart |
· 验证是否成功
1 | docker run hello-world |
因为我们之前没有拉取过
hello-world
,所以运行命令后会出现本地没有该镜像,并且会自动拉取的操作。
· 查看镜像(image)
1 | docker images |
出现了hello-world
的镜像即可
至此Docker部署成功,看推荐文章更好。
0x03 搭建DVWA靶场
推荐文章:https://juejin.cn/post/7076807703565336612
一. 准备工作
开端口:
打开控制台,安全组的管理规则开一个端口,假设为1314。然后连上服务器(我使用xshell)
启动Docker:
1 | systemctl start docker |
二.拉取image
找image(镜像)
1 | docker search dvwa |
但是政策下来,指令有所改变(镜像站不暴露):
1 | docker pull mirror.xxxx.club/citizenstig/dvwa |
三. 布置容器
1 | docker images //查看镜像 |
我端口是1314,后面的80不能改,容器里的php服务默认跑在80端口。
四. 后续
在网页上打开,创建数据库,账户密码输入admin,password即可。
0x04搭建CTF题目环境
一. 上传项目到服务器
个人使用WinSCP,优点是可视化比较好,微软的可视化一向比较nice。自己mkdir一个目录储存项目即可。
二. 构建Docker镜像
在 Dockerfile
所在目录下,打开终端或命令提示符,执行以下命令来构建 Docker 镜像:
1 | docker build -t your-app-name . |
这里的
your-app-name
是你给你的 Docker 镜像起的名字,.
指的是当前目录,即 Dockerfile 所在的目录。
三. 运行Docker容器
镜像构建成功后,执行以下指令创建容器:
1 | docker run --name [取个名字] -d -p 1234:80 your-app-name |
四.后续
登录网页即可验证。
0x05 删除容器和镜像
· 先删除正在运行的容器
查看正在运行的容器:
1 | docker ps |
停止正在运行的容器:
1 | docker stop <容器ID或名称> |
删除目标容器:
1 | docker rm <容器ID或名称> |
· 再删除目标镜像
查看镜像:
1 | docker images |
删除镜像:
1 | docker rmi IMAGE_ID |