前言(踩过的坑)
这几天国赛赛区出题,start.sh一直没启动成功,卡壳了两天,后来才知道在windows下编写的脚本文件,放到Linux中无法识别格式,用vi打开脚本文件,在命令模式下输入set ff=unix
或者set fileformat=unix
保存退出即可。
docker安装apache2
服务启动起来后,php文件没有渲染,要安装一个apache扩展apt-get install -y libapache2-mod-php
docker一些常用指令:
docker ps
查看正在运行的容器docker image ls/docker images
列出本地镜像docker -it
docker -i
以交互模式运行容器,通常与 -t 同时使用docker -t
为容器重新分配一个伪输入终端,通常与 -i 同时使用docker -d
后台运行容器,并返回容器ID;docker -p
端口映射,格式为:主机(宿主)端口:容器端口docker exec -it 9df70f9a0714 /bin/bash
进入ID为9df70f9a0714的容器中去,可以执行bash指令。
使用docker运行服务
前提是在一个写好dockerfile的文件夹中
首先需要创建一个docker镜像:
1 | docker build -t php . //php可以随便取一个名字,最后面要记得加空格和一个.号 |
然后运行这个镜像
1 | docker run -it -d -p 2019:80 php |
这是时候即可在本地:127.0.0.1:2019
访问这个服务
删除本地镜像
参考链接:文章
1.查询镜像:docker images
2.查询容器:docker ps -a
3.先删除容器:docker rm +ID
4.再删除镜像:docker rmi +ID
注意点:
- 删除前需要保证容器是停止的 stop
- 需要注意删除镜像和容器的命令不一样。 docker rmi ID ,其中 容器(rm) 和 镜像(rmi)
- 顺序:需要先删除容器,在删除镜像
参考链接:http://www.runoob.com/docker/docker-command-manual.html
实战:
SUCTF题目的docker环境搭建
SUCTF题目的docker镜像:
1 | suctf/2018-web-multi_sql suctf/2018-web-homework |
启动doker
1 | sudo service docker start |
查看SUCTF,发现只有一个开放。。
1 | sudo docker search suctf |
题目是在80端口开放,运行即可。
1 | sudo docker run -d -p 80:80 suctf/2018-web-getshell |
在VPS中输入0.0.0.0:80即可看到题目,也可以ifconfig查看虚拟机ip,在虚拟机或者主机中 ip加上端口即可看到题目。