前段时间师傅们说,把环境全部弄到Docker里面去吧。然后就整理了一下DockerFile 

其实环境搭建很简答的

首先看这个DockerFile 的写法

# Origin image
FROM ubuntu:16.04


# update
RUN apt update

# Setup Server Environment
RUN apt install -y \
    apache2 \
    php \
    vim \
    mariadb-server \
    libapache2-mod-php \
    php-mysql

ADD ./1.sh /var/www/html/
ADD ./database.sql /var/www/html/
ADD ./web.zip  /var/www/html/

WORKDIR /var/www/html/
#RUN rm index.html
RUN chmod +x 1.sh
RUN chmod 777 database.sql
RUN ls /var/www/html
RUN cd /var/www/html/  && apt install unzip && unzip web.zip  && chmod 777 /var/www/html 
# add new user if it is needed
RUN useradd -d /home/ctf/ -m -p ctf -s /bin/bash ctf
RUN echo "ctf:ca35835f812dcee0" | chpasswd
ENTRYPOINT service apache2 restart && service mysql restart && sh /var/www/html/1.sh && /bin/bash

首先调用的是乌班图的16.04 安装了 apache2  php  mysql 

然后复制1.sh  脚本进去。然后复制数据库文件进去

最后复制文件的压缩文件

然后解压,建立目录。

启动服务。 

看看1.sh的内容

#!/bin/bash
# 启动mysql 
service mysql start  
# 创建一个用户
User='panghu'
Db = 'file_sqli'
Password='panghu404'
#mysql -e "create user '${User}'@'localhost' identified by '${Password}';"
mysql -e "create database ${Db};use ${Db};source /var/www/html/database.sql;"
mysql -e "GRANT ALL PRIVILEGES ON ${Db}.*  TO '${User}'@’localhost’ IDENTIFIED BY ${Password};"
#mysql -e "grant * on ${User}.* to '${User}'@'localhost';"
rm /var/www/html/database.sql
rm /var/www/html/1.sh

然后做成一个镜像

docker build -t ubuntu:16.04  /dock

启动一个容器

docker run -it -p 89:80 ubuntu:16.04

访问一下这个端口