Docker环境安装
Docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中, 然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互 之间不会有任何接口。
Docker环境安装
- 安装Docker
1.添加Docker PGP key
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg |sudo apt-key add -
笔者在kali中执行,遇到apt-key被移除,无法使用该命令
└─# curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
所以直接install下载
更新apt包索引:
sudo apt-get update
apt-get install docker.io
- 检验Docker成功安装
# 启动docker服务
service docker start
#列出docker现有镜像
docker images
#运行hello-world镜像
docker run hello-world
#docker开机自启
systemctl enable docker
- 安装 docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.0/docker compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
- 配置docker加速器:
阿里云镜像加速https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
#按照阿里云提供的命令执行即可
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker的简单使用
#拉取镜像
docker image pull 镜像名称
#删除镜像
docker image rm 镜像名或镜像id
Docker容器操作
- 创建容器
docker run [option] 镜像名 [向启动容器中传入的命令]
常用可选参数说明:
-i 表示以“交互模式”运行容器
-t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。
--name 为创建的容器命名
-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可
以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。
-d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果
只加-i -t 两个参数,创建后就会自动进去容器)。
-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
-e 为容器设置环境变量
--network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同
- 交互式容器
创建一个交互式容器,并命名为mycentos
docker run -it --name=mycentos centos /bin/bash
在容器中可以随意执行linux命令,就是一个ubuntu的环境,当执行exit命令退出时,该容器也随之停止。
- 守护式容器
建一个守护式容器,并命名为mycentos2
docker run -dit --name=mycentos2 centos
如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。在容器内部exit退出时,容器也不会停止。
- 进入容器
docker exec -it 容器名或容器id 进入后执行的第一个命令
例如:
docker exec -it mycentos2 /bin/bash
- 查看容器
列出本机正在运行的容器
docker container ls
列出本机所有容器,包括已经终止运行的
docker container ls --all
- 停止与启动容器
停止一个已经在运行的容器
docker container stop 容器名或容器id
docker stop 容器名或容器id
启动一个已经停止的容器
docker container start 容器名或容器id
docker start 容器名或容器id
kill掉一个已经在运行的容器
docker container kill 容器名或容器id
docker kill 容器名或容器i
Docker搭建LAMP靶场
- 搜索lamp靶场
docker search lamp
- 拉取lamp靶场
docker pull mattrayner/lamp
https://github.com/mattrayner/docker-lamp
- Docker启动LAMP容器
参考github指导
docker run -dit -p "80:80" -v ${PWD}/app:/app mattrayner/lamp:latest
- 进入容器
docker exec -it 容器ID /bin/bash
- 容器中进入app文件夹
cd /app
- 拉取DVWA靶场
windows操作系统直接下载phpstudy,然后把靶场下载到www文件夹下面即可。在linux(如kali)中搭建DVWA和LAMP靶场,笔者习惯使用docker去搭建。
- 下载DVWA到linux当中,将DVWA克隆到app文件夹中
git clone https://github.com/digininja/DVWA.git
- 修改DVWA配置文件
cd app/DVWA/config
cp config.inc.php.dist config.inc.php
vim config.inc.php
- 修改内容为:
$_DVWA[ 'db_server'] = '127.0.0.1';
$_DVWA[ 'db_port'] = '3306';
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = '';
$_DVWA[ 'db_database' ] = 'dvwa';
查看DVWA搭建情况:
http://192.168.1.102:8088/DVWA/setup.php
点击create/Reset Database之后,显示正常,登陆账户为默认*admin/password