目录

      • 一、Docker技术的学习
    • 1.1.docker安装(ubuntu16.04)
      • 1.1.1.apt-get换国内清华源
      • 1.1.2.安装最新版本的Docker
    • 1.2.docker容器与镜像使用
      • 1.2.1.安装docker镜像ubuntu16.04
      • 1.2.2.ubuntu镜像中启动一个容器
      • 1.2.3. 容器中更新镜像
      • 1.2.4. Dockerfile构建镜像
      • 1.2.5.Dockerfile命令详解
        • 1.2.5.1FROM
        • 1.2.5.2 MAINTAINER
        • 1.2.5.3 ADD
        • 1.2.5.4 RUN
        • 1.2.5.5 WORKDIR
        • 1.2.5.6 EXPOSE
        • 1.2.5.7 CMD
        • 1.2.5.8 Dockerfile 样例
    • 1.3.docker 安装 Nginx
      • 1.3.1.获取最新版的 Nginx 镜像
      • 1.3.2.查看本地镜像
      • 1.3.3运行容器
  • 二、Docker技术的应用
    • 2.1.docker 搭建web漏洞检测环境
      • 2.1.1.Dockerfile文件编写
      • 2.1.2.克隆项目
      • 2.1.3.创建镜像
      • 2.1.4.创建容器
      • 2.1.5.开始测试
    • 2.2Docker容器中运行Django项目
      • 2.2.1.ubuntu镜像下创建docker容器
      • 2.2.2.容器内安装所需软件
      • 2.2.3.配置python虚拟环境
      • 2.2.4.虚拟环境下安装Django
      • 2.2.5.运行与测试

一、Docker技术的学习

1.1.docker安装(ubuntu16.04)

1.1.1.apt-get换国内清华源

$ cd /etc/apt/
$ sudo cp sources.list sources.list.bk
$ sudo gedit sources.list
修改sources.list的内容为下面的设置
#默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

#预发布软件源,不建议启用
#deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
清华apt源链接:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

1.1.2.安装最新版本的Docker

$ sudo apt-get install -y docker.io
(3)启动docker服务:
$ sudo systemctl start docker
(4)配置文件/etc/docker/daemmon.json添加阿里云镜像地址:
{“registry-mirrors”: [“https://alzgoonw.mirror.aliyuncs.com”]}

(5)docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
$sudo groupadd docker #添加docker用户组
$sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
$newgrp docker #更新用户组
$docker ps #测试docker命令是否可以使用sudo正常使用

1.2.docker容器与镜像使用

当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。

1.2.1.安装docker镜像ubuntu16.04

wsq@wsq-virtual-machine:~$docker pull ubuntu:16.04

1.2.2.ubuntu镜像中启动一个容器

wsq@wsq-virtual-machine:~$ docker run -t -i ubuntu:16.04 /bin/bash

1.2.3. 容器中更新镜像

从已经创建的容器中更新镜像,并且提交这个镜像(
wsq@wsq-virtual-machine:~$ docker run -t -i ubuntu:16.04 /bin/bash
root@8de10343ef4b:/# apt-get update
root@8de10343ef4b:/# exit
wsq@wsq-virtual-machine:~$ docker commit -m=“has update” -a=“wsq” 8de10343ef4b wsq/wsq_ubuntu
sha256:a527d5725c3377cb4eebad062fe1c5c25e6af6d7a8bac12a5ce3bd6d6fc79996
wsq@wsq-virtual-machine:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wsq/wsq_ubuntu latest a527d5725c33 14 seconds ago 144MB
ubuntu 16.04 faf5784ef367 3 weeks ago 120MB
hello-world latest 30e96422ae92 10 months ago 665kB
ubuntu 15.10 9b9cb95443b5 3 years ago 137MB
training/webapp latest 6fae60ef3446 4 years ago 349MB

1.2.4. Dockerfile构建镜像

使用Dockerfile指令来创建一个新的镜像
创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
$ cat Dockerfile
FROM centos:6.7
MAINTAINER Fisher “fisher@sudops.com”
RUN /bin/echo ‘root:123456’ |chpasswd
RUN useradd wsq
RUN /bin/echo ‘wsq:123456’ |chpasswd
RUN /bin/echo -e "LANG=“en_US.UTF-8"” >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
第一条FROM,指定使用哪个镜像源
RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
$docker bulid -t wsq/centos:6.7 .

1.2.5.Dockerfile命令详解

1.2.5.1FROM

定义容器的基础系统来自哪个 image, 如: FROM ubuntu:14.04, image 仓库为 ubuntu tag 为 14.04的系统。

1.2.5.2 MAINTAINER

作者相关信息说明, 一般书写方式为: MAINTAINER <作者名称> <作者邮箱地址>

1.2.5.3 ADD

从宿主机拷贝文件到容器内, 一般格式: ADD ./lib /home/lib, 将当前目录下的 lib 目录中的内容拷贝到容器的 /home/lib/目录下。

1.2.5.4 RUN

在容器内运行命令, 如: RUN apt-get -y update。

1.2.5.5 WORKDIR

切换容器内的当前工作目录, 如: WORKDIR /home/lib/。 当你登陆到容器内后,默认就进入 /home/lib目录。

1.2.5.6 EXPOSE

暴漏端口, 把容器端口暴漏给宿主机, 方便在宿主机访问, 如:EXPOSE 1000 。

1.2.5.7 CMD

执行一系列命令, 如: CMD [“sh”, “./startup.sh”]。

1.2.5.8 Dockerfile 样例

github地址: https://github.com/MyKings/docker-vulnerability-environment/blob/master/bWAPP/Dockerfile

1.3.docker 安装 Nginx

Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 。

1.3.1.获取最新版的 Nginx 镜像

$ docker pull nginx:latest

1.3.2.查看本地镜像

使用以下命令来查看是否已安装了 nginx:
$ docker images

在上图中可以看到我们已经安装了最新版本(latest)的 nginx 镜像。

1.3.3运行容器

安装完成后,我们可以使用以下命令来运行 nginx 容器:
$ docker run --name nginx-test -p 8080:80 -d nginx
参数说明:
• --name nginx-test:容器名称。
• -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
• -d nginx: 设置容器在在后台一直运行。

然后通过浏览器可以直接访问 8080 端口的 nginx 服务:

二、Docker技术的应用

2.1.docker 搭建web漏洞检测环境

2.1.1.Dockerfile文件编写

FROM ubuntu:14.04
MAINTAINER MyKings
#使用国内淘宝源
ADD sources.list /etc/apt/
#安装服务
RUN apt-get -y update
RUN apt-get -y install php5 php5-mysqlnd mysql-server wget unzip
#启动 mysql 并设置 root 密码
RUN /etc/init.d/mysql start &&
mysql -e “grant all privileges on . to ‘root’@‘localhost’ identified by ‘bug’;”&&
mysql -u root -pbug -e “show databases;”
#切换工作目录
WORKDIR /var/www/html/
#本地拷贝
#ADD ./bWAPP_latest.zip /var/www/html/bWAPP_latest.zip
#RUN unzip /var/www/html/bWAPP_latest.zip
#下载 bWAPP
RUN wget http://jaist.dl.sourceforge.net/project/bwapp/bWAPP/bWAPP_latest.zip && unzip bWAPP_latest.zip
#删除默认首页
RUN rm /var/www/html/index.html
#拷贝启动脚本
ADD ./startup.sh ./
EXPOSE 80
CMD ["/bin/bash", “/var/www/html/startup.sh”]

2.1.2.克隆项目

$ git clone https://github.com/MyKings/docker-vulnerability-environment
#进入到 bWAPP 目录
$ cd ./docker-vulnerability-environment/bWAPP

2.1.3.创建镜像

开始创建 image 镜像,过程稍慢
$ docker build -t bwapp .

2.1.4.创建容器

$ docker run -it -d -p 8001:80 --name bwapp_wsq1 bwapp

2.1.5.开始测试

使用浏览器打开 http://127.0.0.1:8001/

2.2Docker容器中运行Django项目

2.2.1.ubuntu镜像下创建docker容器

创建容器:$docker run -it -d --name django_test ubuntu:16.04

2.2.2.容器内安装所需软件

进入容器: $docker exec -it django_test bash
退出容器:exit

更新apt源、安装python和虚拟环境:
$ sudo apt-get -y update
$ apt-get install sudo
$ sudo passwd root
$ sudo apt-get install python
$ sudo apt-get install python3.6
$ sudo apt-get install virtualenv
$ sudo apt-get install virtualenvwrapper

2.2.3.配置python虚拟环境

创建一个保存虚拟环境的目录:
sudo mkdir ~/.virtualenvs
sudo vim ~/.bashrc
修改.bashrc文件添加以下代码:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
退出后执行:
source ~/.bashrc

mkvirtualenv -p /usr/bin/python3 vne_name #通过python3创建虚拟环境
workon virtualenvname #进入虚拟环境
deactivate #退出虚拟环境

2.2.4.虚拟环境下安装Django

pip换源
mkdir ~/.pip
touch ~/.pip/pip.conf
在pip.conf中添加如下
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
退出
pip install django==1.8.2 #安装django1.8.2

2.2.5.运行与测试

django-admin startproject project_name # 创建django项目
python manage.py startapp app_name #创建app
python manage.py runserver 8000 #运行django项目

Docker基础学习笔记( 搭建web漏洞检测环境和容器中运行Django项目)相关推荐

  1. 使用Docker如何搭建Web漏洞测试环境?

    本文和大家分享的是使用Docker搭建Web漏洞测试环境相关知识,希望对大家学习Docker有所帮助,一起来看看吧. 由于一直在做 Web 漏洞扫描器的开发, 那么就必然少不了 Web 的漏洞测试环境 ...

  2. Docker基础学习笔记

    Docker 理念 Docker是基于Go语言实现的云开源项目. 基本概念 容器:实例对象,是一个集装箱,可以把容器看作简易版的Linux环境: 镜像:只读的模板,用来创建容器.可以创建多个容器,例如 ...

  3. Docker基础学习笔记01:Docker安装

    文章目录 一.Docker概述 (一)Docker为何物 (二)Docker思想 1.集装箱 2.标准化 3.隔离性 二.在私有云上创建虚拟机 (一)登录OpenStack私有云 1.查看[概览] 2 ...

  4. Docker基础学习笔记02:Docker基本操作

    文章目录 一.Docker镜像操作 (一)拉取镜像到本地 1.命令格式 2.操作演示 (二)查看本地镜像 (三)删除本地镜像 任务1:删除本地指定镜像 任务2:删除全部本地镜像 任务3.拉取镜像到本地 ...

  5. Docker入门学习笔记

    文章目录 Docker入门学习 Docker为什么出现? 一.Docker的历史 二.Docker做什么 三.Docker 安装 Docker的基本组成 安装Docker 阿里云镜像加速 运行流程 底 ...

  6. C基础学习笔记——01-C基础第02天(用户权限、VI操作、Linux服务器搭建)

    在学习C基础总结了笔记,并分享出来.有问题请及时联系博主:Alliswell_WP,转载请注明出处. 01-C基础第02天(用户权限.VI操作.Linux服务器搭建) 打开终端:ctrl+alt+t ...

  7. 12月28日 OpenCV 实战基础学习笔记——疲劳检测

    文章目录 前言 一.眨眼疲劳检测 前言 本文为12月28日 OpenCV 实战基础学习笔记--疲劳检测. 一.眨眼疲劳检测 from scipy.spatial import distance as ...

  8. Task 06 数据增强;模型微调;目标检测基础 学习笔记

    Task 06 数据增强:模型微调:目标检测基础 学习笔记 数据增强 图像增广 在5.6节(深度卷积神经网络)里我们提到过,大规模数据集是成功应用深度神经网络的前提.图像增广(image augmen ...

  9. 《深入浅出Docker》学习笔记

    <深入浅出Docker>学习笔记 第三章:docker 安装 linux服务器安装:-略 windows服务器安装:-略 确认安装结果 docker --version 第四章:纵观DOc ...

最新文章

  1. 关于MVP模式的一些讨论文章
  2. Jersey Restful部署到Tomcat注意事项
  3. 已经入门了C++,后面的路怎么走?
  4. 数据特征分析(学习笔记)
  5. NC88-寻找第K大的数
  6. javascript Number object
  7. 【前端】【cornerstone】cornerstone.js如何编辑图像/加载已有图像数据(以画直线为例)
  8. jQuery-1.9.1源码分析系列(十一) DOM操作续——克隆节点
  9. js数组 reduce函数
  10. LTE技术对PTN的影响
  11. Django笔记09:一招解决使用regroup模板标签出现的重复分组问题
  12. 高射炮打蚊子丨用Visual Studio 2017写最初级的C语言程序
  13. Linux平台提取DSDT,关于DSDT修改-提取软件以及使用方法【详解】
  14. PartⅠIn the Hotel 在宾馆!?
  15. 详细设计-程序结构图
  16. Qt TableView的简单使用
  17. 06-图1 列出连通集(25 分)
  18. 美容行业竞争分析:2022年大型美容院成为市场主流
  19. 虚幻引擎5 C++编程学习
  20. 写给自己,也写给正准备开始创业的人

热门文章

  1. ROS学习笔记publisher的编程实现c++详解
  2. 2016年全国计算机一级成绩查询时间,2016年3月计算机一级考试成绩什么时候出来...
  3. 关于在Word2013中安装MathType的问题
  4. matlab将图片转成eps,【MATLAB】论文图片处理(各种数据图转换成eps格式)
  5. Django 模型操作
  6. webmail 客户端_最受欢迎的Webmail客户端
  7. 电脑系统重装后音频驱动程序怎么修复
  8. sow工作任务说明书例子
  9. 回收站清空了能恢复吗?回收站文件恢复的2种方法
  10. 0039c语言作业答案2020,中石油华东2020年秋季学期《程序设计(C语言)在线考试题目答案...