赞
踩
apt-get install docker
- yum install docker
- dnf install docker # Fedora 25+
zypper install docker
- # 启动Docker
- systemctl start docker
- # 设置开机自启动,可选
- systemctl enable docker
docker run "hello-world"
- # -d:daemon,使容器在后台运行
- # -p:port,指定容器的端口,这里是将容器的80端口映射到主机的8001端口
- docker run -d -p 8001:80 "image_name"
docker ps
-name
自行指定,这两个可以用来标识容器。- docker stop "container_name"
- # 或使用ID查找
- docker stop "container_id"
docker build -t "image_name" ./
docker images
docker save "image_name" > image_name.tar
docker load < image_name.tar
- # 来源镜像,一般可以使用标准的系统或者带有各种环境的系统
- # 显然这里使用的是标准的Ubuntu 14.04系统
- FROM ubuntu:14.04
- # 镜像作者
- MAINTAINER wrlu
- # 刷新日期
- ENV REFRESHED_AT 2018-08-05
- # 设定字符集
- ENV LANG C.UTF-8
- # RUN命令用于执行系统命令
- # 因为需要自动化安装,所以最好通过-y命令跳过确认
- # 更新APT软件源
- RUN apt-get update -y
- # 安装MySQL
- RUN apt-get -y install mysql-server
- # 安装Apache
- RUN apt-get -y install apache2
- # 安装PHP5
- RUN apt-get -y install php5 libapache2-mod-php5
- RUN apt-get install -yqq php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
- # 删除Apache2列出目录配置
- RUN sed -i 's/Options Indexes FollowSymLinks/Options None/' /etc/apache2/apache2.conf
- # COPY命令可以复制文件,但是似乎不能递归复制文件
- COPY IncludeAirline/* /var/www/html/
- COPY IncludeAirline/airlines/* /var/www/html/airlines/
- # 删除默认的主页
- RUN rm /var/www/html/index.html
- # 复制启动脚本
- COPY start.sh /root/start.sh
- RUN chmod +x /root/start.sh
- # 设置启动目录以及启动脚本
- ENTRYPOINT cd /root; ./start.sh
- # 设置需要暴露的端口
- EXPOSE 80,3306
start.sh
,用于导入数据库,编写如下:- #!/bin/bash
- # 启动后延时
- sleep 1
- # 启动Apache服务器
- /etc/init.d/apache2 start
- # 启动MySQL数据库
- find /var/lib/mysql -type f -exec touch {} ; && service mysql start
- # 定义SQL文件路径
- sqlfile=/var/www/html/includeAirline.sql
- if [ -f $flagfile ]; then
- # 修改MySQL的密码
- mysqladmin -u root password "root"
- # 登录MySQL并导入SQL文件执行
- mysql -uroot -proot < $sqlfile
- # 删除SQL文件
- rm -f $sqlfile
- fi
- # 此处注意,如果命令执行完后脚本退出
- # 则Docker容器也会因为没有前台应用运行而中止
- # 所以这里使用一个前台命令来保活Docker容器
- tail -f /var/log/apache2/error.log
- # 来源镜像,自带Apache+PHP环境
- FROM php:7.0-apache
- MAINTAINER tl
- ENV REFRESHED_AT 2018‐08‐03
- ENV LANG C.UTF‐8
- # ADD命令在COPY命令的基础上,具有自动解包tar的功能
- ADD web_tired.tar /var/www/html/
- EXPOSE 80
- FROM ubuntu:16.04
- MAINTAINER wrlu
- ENV REFRESHED_AT 2018-08-05
- ENV LANG C.UTF-8
- RUN apt-get update -y
- RUN apt-get -y install mysql-server
- # 安装wget,因为Docker提供的镜像是最小镜像,所以用到的其他工具需要自行安装
- RUN apt-get -y install wget
- # 安装Java 8
- RUN apt-get -y install openjdk-8-jre
- # 下载Tomcat 8服务器
- RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
- # 解压tar.gz
- RUN tar -xzf apache-tomcat-8.5.32.tar.gz -C /root
- RUN mv /root/apache-tomcat-8.5.32 /root/tomcat
- # 删除默认页面
- RUN rm -rf /root/tomcat/webapps/*
- # 拷贝war文件
- COPY CAAC-SQL-Injection.war /root/tomcat/webapps/
- COPY wafwtf.sql /root/
- COPY start.sh /root/start.sh
- RUN chmod +x /root/start.sh
- ENTRYPOINT cd /root; ./start.sh
- # Tomcat使用8080端口,不同于Apache
- EXPOSE 8080
- #!/bin/bash
- sleep 1
- find /var/lib/mysql -type f -exec touch {} ; && service mysql start
- chmod +x /root/tomcat/bin/startup.sh
- # 启动Tomcat服务器
- /root/tomcat/bin/startup.sh
- sqlfile=/root/wafwtf.sql
- if [ -f $flagfile ]; then
- mysqladmin -u root password "root"
- mysql -uroot -proot < $sqlfile
- rm -f $sqlfile
- fi
- # 容器保活
- tail -f /root/tomcat/conf/server.xml
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。