大致分为下面几个步骤:
- 拉取debian基础镜像, 安装基础环境
- 添加awvs 和 license 到镜像, 并进行初始安装
- 构建镜像,并上传docker hub
- 使用镜像创建 awvs 容器
docker run -d -it --cap-add LINUX_IMMUTABLE -p 3443:3443 --name awvs k9scc/awvs:v15.4 /bin/bash /opt/awvs/start.sh
- 删除容器
1. 创建基础镜像
Dockerfile
FROM debian
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list &&\
apt update &&\
apt -y install net-tools libx11-6 libxcomposite1 libxdamage1 libxext-dev libxfixes-dev libxrandr-dev libasound2 libatk-adaptor libatk-bridge2.0-0 libatk-bridge2.0-dev libatspi2.0-0 libcairo2 libcups2 libdbus-1-3 libdrm2 libexpat1 libgbm1 libgio-cil libglib2.0-0 libglib-perl librust-gobject-sys-dev libnspr4 libnss3 libpango-1.0-0 libxkbcommon0 sudo systemctl
构建包含基础环境镜像
docker build -t debian-env .
#查看构建好的镜像
docker images
2. 使用上面的镜像创建一个容器, 并且把应用添加到镜像
安装awvs, app文件夹里面存放awvs安装文件和license文件
docker run -it --name awvs-init debian-env bash
#另外打开一个终端
docker cp app awvs-init:/opt/awvs
安装awvs, 此时安装好后时未激活状态
安装步骤
1. >>> 回车
2. ---More--- q #按键盘q
3. Accept the license terms? [yes|no]
[no] >>> yes #输入yes
4. Hostname [a366*****23]: awvs #随便输
5 Configuring the master user...
Email: [email protected] #登陆邮箱
Password: #密码
Password again: #密码
清理
apt clean all
cd /opt/awvs
rm acunetix_15.4.230222085_x64.sh install.log
3. 构建镜像, 并上传到docker hub
构建镜像
docker commit awvs-init awvs:init
上传dockerhub
#登陆dockerhub
docker login
username
password
#打标签,然后上传镜像
docker tag awvs:init 用户名/仓库名:标签
docker push 用户名/仓库名:标签
4. 使用
创建容器
docker run -d -it --cap-add LINUX_IMMUTABLE -p 3443:3443 --name awvs k9scc/awvs:v15.4 /bin/bash /opt/awvs/start.sh
这里使用了
是为了方便chattr命令锁定lisense文件 --cap-add LINUX_IMMUTABLE
start.sh内容
add_entry_to_hosts () {
local hostname=$1
echo "Adding $hostname entry."
echo -e "127.0.0.1 $hostname\n::1 $hostname" >> /etc/hosts
}
add_entry_to_hosts "erp.acunetix.com"
add_entry_to_hosts "telemetry.invicti.com"
add_entry_to_hosts "updates.acunetix.com"
su -l acunetix -c "/home/acunetix/.acunetix/start.sh"
第一次创建容器后的时候需要运行crack.sh
进入容器
docker exec -it awvs bash
#进入容器后
cd /opt/awvs/
bash start.sh
5. 删除容器
因为使用了特殊权限,删除会提示错误, chattr -i 取消对应路径的文件权限即可删除 如图
提示
#docker rm awvs
Error response from daemon: container 2810520df0d51b693522e97d0328d01ddbc8abb5caf88576f8df83d1ae07451a: driver "overlay2" failed to remove root filesystem: unlinkat /var/lib/docker/overlay2/81b0d118aa36af991ffdee8e12d8a831df10653d73af7df3c195e92dd885afe6/diff/home/acunetix/.acunetix/data/license/license_info.json: operation not permitted
#路径为
/var/lib/docker/overlay2/81b0d118aa36af991ffdee8e12d8a831df10653d73af7df3c195e92dd885afe6/diff/home/acunetix/.acunetix/data/license/
docker rm awvs
#这里的路径改成自己的
chattr -i /var/lib/docker/overlay2/81b0d118aa36af991ffdee8e12d8a831df10653d73af7df3c195e92dd885afe6/diff/home/acunetix/.acunetix/data/license/license_info.json
chattr -i /var/lib/docker/overlay2/81b0d118aa36af991ffdee8e12d8a831df10653d73af7df3c195e92dd885afe6/diff/home/acunetix/.acunetix/data/license/wa_data.dat