docker的安装和dvwa的下载
安装docker
操作1:
1、由于我本来安装过一次,但失败了,所以要先卸载原来的版本
sudo apt-get remove docker docker-engine docker-ce docker.io
2、同时更新apt包
sudo apt-get update
3、安装下面的包——作用:允许 apt 包管理器通过 HTTPS 协议访问软件仓库
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
4、添加Docker官方的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
(有时候不能成功,可以多试几次就好了)
5、 将Docker 的官方软件仓库添加到系统的软件源列表中
(以便后续可以通过 apt 包管理器安装和管理 Docker 软件包)
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
后面继续操作,也都出现了问题,
这时候,在后面的报错中出现了
是有提示的
输入sudo apt-get install --fix-missing containerd.io后,重新上面的所有操作
就可以继续后面的操作了
6、再更新一下apt包索引
sudo apt-get update
7、安装最新版本的Docker CE
sudo apt-get install -y docker-ce
最后可以用systemctl status docker来看看是否成功
[!CAUTION]
1、解决docker下载速度过慢问题,更新源即可。
在/etc/docker/daemon.json中的{}添加:
"registry-mirrors": ["https://registry.docker-cn.com"]或者其他的源没有daemon.json文件的可以自己创建
sudo vim /etc/docker/daemon.json——没有的话会自动创建的格式:
1
2
3 {
"registry-mirrors": ["https://registry.docker-cn.com"]
}2、上面的操作,我试了试很多的镜像源,在后面的操作中都是网络问题,没有成功
docker pull vuldocker/lamp——快速搭建一个Web的开发环境
1
2
3
4
5
6 docker run -d --name test -p 3000:80 vuldocker/lamp
//命令run 安装容器;
-d 参数 后台运行;
--name 取名字 取名为 test;
-p 参数 端口转发 将容器80端口转发到宿主机3000端口;
最后跟上镜像名
后面的操作:
我则是直接用了另一个命令load
我用的是其他人打包好的镜像下载下来了,
之后执行命令docker load --input dvwa.tar
然后看看是否加载成功docker images
最后启动容器docker run --rm -it -p 80:80 vulnerables/web-dvwa
运行后,如果在本机上运行的话,可以看运行后给的ip地址,输入即可访问
如果是在其他电脑上访问的话,就是要输入本机的ip地址了
登录后,就是一个setup.php页面,默认账号密码admin,password
[!TIP]
——如果你之前安装过apache2 ,可能80端口被占用了而导致出现问题
sudo systemctl stop apache2来停止运行,同时如果是开机自启动的,可执行
sudo systemctl disable apache2来停止
停止靶场:sudo stop ID(或者容器名)(也可以在运行进程的终端上,Ctrl+C结束进程)
开始靶场sudo start ID(或者容器名)
暂停:docker pause dvwa,恢复sudo docker unpause dvwa
sudo docker images——查看有什么容器
sudo docker ps——查看什么容器正在运行
附
docker
框架
镜像(image):是个只读模版,可以用来创建Docker容器(1个/多个)
sudo docker images——查看有什么容器创建
Dockerfile创建
//dockerfile,以ubuntu+python为例 #1. 选择基础镜像 FROM ubuntu:22.04/php:7.4-apache #2 维护者信息(可选) LABEL maintainer="your-email@example.com" #3 设置工作目录(如果是想复制网上环境到本地环境,记得保持环境目录一致) WORKDIR /app #4 复制文件到镜像,这里是把当前目录的所有内容复制到镜像中 COPY . /app #5 安装依赖 RUN apt-get update && \ apt-get install -y python3 python3-pip && \ apt-get clean #6 安装Python依赖/PHP的依赖管理工具Composer等等 RUN pip3 install -r requirements.txt #7 暴露端口 EXPOSE 8080 #8 设置环境变量 ENV NODE_ENV production #9 容器启动命令(可选) CMD ["python3", "app.py"] 指令 用途 示例 FROM 基础镜像 FROM node:18-alpine RUN 执行命令 RUN npm install COPY 复制文件 COPY . /app ADD 复制+解压 ADD app.tar.gz /app CMD 容器启动命令 CMD ["npm", "start"] ENTRYPOINT 入口点 ENTRYPOINT ["python3"] ENV 环境变量 ENV PORT=8080 ARG 构建参数 ARG VERSION=1.0 EXPOSE 声明端口 EXPOSE 80 VOLUME 挂载点 VOLUME /data //构建命令 #构建镜像(当前目录要有Dockerfile) sudo docker build -t my-image . #指定Dockerfile路径(可选) sudo docker -t my-image -f ./Dockerfile sudo docker run -d -p 8080:80 --name my-image-test my-image1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- 容器(container):运行实例,可以被启动、开始、停止、删除;每个容器可以看做是一个简易版的Linux环境
- `docker run (--rm) -it -p 80:80 (container's name)`——启动容器(`--rm`停止运行后,自动删除容器)
- `sudo docker ps (-a)`——查看有什么容器在运行(所有容器)
- `sudo stop ID(或容器名)`停止(不会删除容器)
- `docker --rm 容器名`删除·
- `docker container prune`删除所有停止的容器
- `docker commit 容器名 new_image`(停止也可以commint)创建新的image
- `sudo start ID(或容器名)`开始
- `docker pause 容器名`——暂停,`sudo docker unpause 容器名`——恢复
- 容器中**执行cmd**
- ```bash
sudo docker exec -it <容器名> 命令
eg:sudo docker exec -it smarty-test ls -la templates_c/
仓库(repository):集中存放镜像文件的地方.
sudo docker images就是查看本地镜像的仓库信息(REPOSITORY列是镜像的仓库名)docker search 镜像名在Docker Hub上搜索镜像docker inspect 镜像名或ID完整的信息,包括仓库
镜像的拉取
docker pull+ Docker Hub的地址/完整仓库地址
也可以本地导入(要已有镜像文件的压缩包)
docker load -i /path/to/your_image_file.tar
(latest标签指向的版本可能会变动,不推荐在生产环境中使用,以免因版本差异导致意外问题)




