0x1前言
笔者在完成课程作业时需要构建DVWA靶场,最方便的方式必然是起一个docker,好在官方也提供了这一途径,但是笔者在docker pull
时却频频报错,按照网上换源、重装等诸多办法都无济于事,于是有了下面的解决方案。
0x2问题解决过程
现在诸多主流镜像源都已经失效,根据这篇文章,笔者进行了探索。
最轻便的方式当然是使用神奇的科学上网方式来进行解决,但是笔者过于懒惰,不愿意配置clash
,因此用代理的方式来pull
值得一提的是,
wget http://fishros.com/install -O fishros && bash fishros
可以一键安装鱼香ROS
的工具箱,这个本来是用来配置ROS的,但是有一键部署clash
的方式,非常适合懒人体质。
首先记录下原始pull命令
docker pull vulnerables/web-dvwa
然后进入仓库,将命令换成
docker pull m.daocloud.io/docker.io/vulnerables/web-dvwa
然后等待下载完毕
输入docker image ls
查看镜像
然后为了方便,将镜像重命名docker tag <yourimage> <renamedimage>
,例如笔者使用了docker tag m.daocloud.io/docker.io/vulnerables/web-dvwa s
将新的镜像重命名为s
,然后将老的镜像移除docker rmi m.daocloud.io/docker.io/vulnerables/web-dvwa
。
然后运行DWVA
docker run --name dvwa -d -p 8888:80 -p 6666:3306 -e MYSQL_PASS="<yourpassword>" s
查看ifconfig
,ip是192.168.153.133
,访问http://192.168.153.133:8888/login.php
,账号是admin
,密码是password
,搞定
0x3 附录,docker的常用命令
基本操作
启动docker
systemctl start docker
关闭docker
systemctl stop docker
重启docker
systemctl restart docker
docker设置随服务启动而自启动
systemctl enable docker
查看docker 运行状态
systemctl status docker
镜像操作
docker ps
:列出运行中的容器docker ps -a
:查看所有容器,包括未运行docker stop 容器id或name
:停止容器docker kill 容器id
:强制停止容器docker start 容器id或name
:启动已停止的容器docker inspect 容器id
:查看容器的所有信息docker container logs 容器id
:查看容器日志docker top 容器id
:查看容器里的进程docker exec -it 容器id /bin/bash
:进入容器exit
:退出容器docker rm 容器id或name
:删除已停止的容器docker rm -f 容器id
:删除正在运行的容器docker exec -it 容器ID sh
:进入容器
referrenceLink :
0x4 科学代理
参考知乎文章
首先查看自己的代理的port
,然后
sudo vim /etc/docker/daemon.json
在daemon.json
中配置
{
"proxies": {
"http-proxy": "http://127.0.0.1:7897",
"https-proxy": "http://127.0.0.1:7897",
"no-proxy": "localhost,127.0.0.0/8"
}
}
:wq保存并退出
然后
sudo vim ~/.docker/config.json
如果没有这个文件就创建一个
然后填入
{
"auths": {
"registry.cn-hongkong.aliyuncs.com": {
"auth": "xxxxxx="
}
},
"proxies": {
"default": {
"httpProxy": "http://127.0.0.1:7897",
"httpsProxy": "http://127.0.0.1:7897",
"noProxy": "127.0.0.0/8"
}
}
}
笔者是在本地运行的,因此删去auths
字段。
最后sudo systemctl restart docker
重启服务
注:您需要根据自己的代理端口来修改