• Docker入门


    Docker简介

    Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。

    Docker在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等的,极大的简化了容器的创建和维护。使得Docker技术比虚拟化技术更为轻便、快捷。

    传统的虚拟机技术是虚拟出一套硬件之后,在其上运行一个完整的操作系统,在该系统上再运行其所需要的应用进程;而容器的应用进程直接运行与宿主的内核,容器内没有自己的内核,而且没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

    鉴于Docker上面的这些特性,很适合在Web安全中搭建各种环境,包括php代码审计的环境和各种漏洞的环境。在Github上面目前有人就使用Docker来搭建各种漏洞环境,做得比较好的是P牛的vulhub和Medicean的VulApps

    Docker入门使用

    Docker的入门可以参考书籍docker_practice

    下面就以一个最简单的php的环境为例来进行说明。
    一般情况下,使用Docker环境都会存在两个文件Dockerfiledocker-compose.yml
    Dockerfile,主要就是在搭建环境时需要运行的一些命令
    docker-compose.yml,主要就是用来组织多个容器的。例如常见的lamp环境就涉及到了nginx,mysql和php环境,这些容器组织在一起就需要靠docker-compose.yml这个文件了。
    创建文件夹dockerlearn(在实际环境中,此文件夹的名字可以任意),在文件夹中分别创建文件index.php,Dockerfile,docker-compoer.yml

    index.php

    <?php
    phpinfo();
    ?>
    

    Dockerfile

    FROM vulhub/php:5.6-apache
    
    MAINTAINER spoock <me@spoock.com>
    
    RUN docker-php-ext-install mysqli
    
    COPY index.php /var/www/html/index.php
    
    • FROM vulhub/php:5.6-apache,从https://hub.docker.com/r/vulhub上面拉取php5.6和apache的环境

    • RUN docker-php-ext-install mysqli,安装额外的组件mysqli

    • COPY index.php /var/www/html/index.php,将当前目录下的index.php拷贝到docker容器中的/var/www/html/index.php中。

    docker-compose.yml

    version: '2'
    services:
      web:
        build: .
        depends_on:
          - mysql
        ports:
          - 8080:80
      mysql:
        image: mysql:5
        environment:
          - MYSQL_ROOT_PASSWORD=root
    

    depends_on,说明web服务需要的mysql容器的支持
    ports,表达将容器中的80端口映射到宿主主机的8080端口
    mysql,表示的就是mysql的容器的相关信息。

    环境搭建

    Docker安装

    下面是以ubuntu16.04为例来说明docker的安装和使用。

    在ubuntu16.04下安装docker和docker-compose

    # 安装pip,如果有则不需要进行安装
    curl -s https://bootstrap.pypa.io/get-pip.py | python3
    
    # 安装docker
    apt-get update && apt-get install docker.io
    
    # 建立docker用户组
    sudo groupadd docker
    sudo usermod -aG docker $USER
    
    # 启动Docker
    service docker start
    
    # 安装compose
    pip install docker-compose
    

    漏洞搭建

    成功安装docker之后,就可以搭建上面的那个示例程序了。

    # 进入到dockerlearn文件夹中
    cd /path/to/dockerlearn
    
    # 自动化编译环境
    docker-compose build
    
    # 启动整个环境
    docker-compose up -d
    

    编译完成之后,在浏览器中访问localhost:8080,出现如下的结果,则表示环境安装成功。

  • 相关阅读:
    Java LinkedList 源码剖析
    Java并发编程:线程池的使用
    Java 线程池的原理与实现
    多线程JAVA篇(一)
    软件开发中会用到的图
    linux文件名匹配——通配符使用
    XModem协议
    dmesg 命令七种用法
    定位精度单位CEP、RMS、2DRMS常识
    5G NR 技术简介
  • 原文地址:https://www.cnblogs.com/babers/p/6945463.html
Copyright © 2020-2023  润新知