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

一、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
#启动docker服务:
$ sudo systemctl start docker
#配置文件/etc/docker/daemmon.json添加阿里云镜像地址:
{"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]}
#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项目

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值