2019-2020-2 20175113完瑞 基于Windows的信息安全专业导论学习容器的构建 个人报告

北京电子科技学院

《信息安全工程技术应用》课程设计报告

基于Windows的信息安全专业导论学习容器的构建

                                                                                     小组成员姓名:20175104李屹哲

                                                                                                              20175113   

                                                                                                              20175133于沛辰

                                                                                     指导教师:娄嘉鹏

一、 详细设计思路

1、 安装Windows10 pro虚拟机

1) 下载镜像文件,配置Windows10 pro环境

    • 下载镜像文件: thunder://QUFodHRwOi8veHozLmRhb2hhbmc0LmNvbS9jbl93aW5kb3dzXzEwX2NvbnN1bWVyX2VkaXRpb25zX3ZlcnNpb25fMTkwOV94NjRfZHZkXzc2MzY1YmY4Lmlzb1pa
    • 新建一个虚拟机,打开下载的镜像文件

2) 安装Vm-tools,开启共享文件夹

    • 安装完成后安装 vm tools(正常会自动安装)
    • 虚拟机→选项→共享文件夹,启用共享文件夹,共享文件夹可在win10 网络下找到

3) 开启Hyper-v服务

    • 在Windows10 pro上打开 Hyper-v 功能:控制面板→程序→程序和功能→启用或关闭windows功能,勾选 Hyper-v 功能
    • 如果 Hyper-v 功能呈灰色,无法勾选,可以参考这篇博客来配置虚拟机配置文件

2、 安装docker

1)  从官网下载Docker Desktop

    • 下载 Docker Desktop(可在虚拟机打开浏览器直接下载,也可在主机中下载,共享文件夹导入,个人建议后者)

2)  安装并测试docker

    • 运行 docker version:确认你有一个支持的docker版本
    • 运行 docker run hello-world:从docker hub上获取hello-world镜像并运行一个容器
      • 如果提示无法匹配镜像,将设置中 Docker Engine中“experimental:false”改为“experimental:true”,之后就可以匹配镜像了
    • 运行 docker image ls:列出全部的镜像
    • 运行 docker container ls --all :列出全部的容器
    • 以上就是docker从docker hub下载镜像、构建容器的一些指令,具体更多操作参考官方指导

3、 建立图形化的ubuntu容器&配置python环境

1)  下载和运行图形化的ubuntu容器: docker run -p 6080:80 -p 5900:5900 dorowu/ubuntu-desktop-lxde-vnc:xenial 

2)  下载安装TightVNC

3)  使用 TightVNC Viewer 远程连接容器端口建立容器图形化界面

    • 如果报错,关闭右下角 TightVNC 服务,再用管理员身份启动 TightVNC Viewer

4)  更新源,配置python3.6、python3-pip

    • 更新下载源:
      • 在 /etc/apt/sources.list 文件中加入163源
      • deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
        deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
        deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
        deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
        deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
        deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
        deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
        deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
        deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
        deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
    • 更新软件列表: apt-get update 
    • 安装python环境: apt install python3.6 、 apt install python3-pip 

5)  调试python环境

    • 新建一个python文件: touch helloworld.py 
    • 用leafpad编辑 helloworld.py : leafpad helloworld.py 
    • 在文本内输入: print('hello world!') 
    • 运行 helloworld.py : python helloworld.py 
    • 运行成功,打印了 hello world! 

    • 再用leafpad编辑helloworld.py: leafpad helloworld.py 
    • 换一段测试代码,程序功能:暂停一秒输出,并格式化当前时间
    • 运行成功,证明python环境可用

4、 配置vscode环境

1)  配置Vscode

2)  Vscode中安装Python拓展包

    • 在扩展商店搜索 language packs 并下载中文汉化包
    • 在扩展商店搜索 python 并下载python扩展包

3)  调试Python代码

    • 打开之前的 helloworld.py 运行并调试

5、 安装并测试pep/9环境

1)  下载安装Pep9

    • 进入Pep/9官网,选择Pep/9 Windows版下载,下载完成后按默认选项安装即可正常打开使用

2)  Pep9内调试汇编代码

    • 打印:Hi
      • 在 Source Code 区输入汇编指令,Build→Run Source(快捷键:Ctrl+R)
      • LDBA 0x0048,i    ;Load 'H' into accmulate
        STBA 0xFC16,d    ;Store accmulator to output device
        LDBA 0x0069,i    ;Load 'i' into accmulate
        STBA 0xFC16,d    ;Store accmulator to output device
        .END ;Stop
      • 可以在 Object Code 区观察到汇编指令对应的机器指令,这里做下解析:
      • D0 00 48   //把 H 放入累加寄存器
        F1 FC 16   //打印累加寄存器中存储的字节
        DO 00 69   //把 i 放入累加寄存器
        F1 FC 16   //打印累加寄存器中存储的字节
        00         //停止
        zz         //结束标识符

    • 两个字符的倒序输出:
      • 在Object Code区输入汇编指令,Build→Run Object
      • D1 FC 15  //将输入设备中的第一个字符读入累加器
        F1 00 13  //将字符从累加器存储到内存中
        D1 FC 15  //将第二个字符从输入设备读入累加器
        F1 FC 16  //将第二个字符打印到输出设备
        D1 00 13  //从内存中加载第一个字符
        F1 FC 16  //打印第一个字符到输出设备
        00        //停止
        zz        //结束标识符

6、 拓展内容-配置anaconda环境

1)  配置anaconda

    • Anaconda可以从官网下载,选择Linux环境安装包下载(建议选择Python3.7版本,因为Python3正在逐渐替代Python2;这里我选用Python3版本,但其实,版本的选择在anaconda中并不是一个问题,因为通过环境管理,我们可以很方便地切换运行时的Python版本)
    • 安装Anaconda: bash Anaconda3-2020.02-Linux-x86_64.sh
    • 安装过程中会要求阅读相关协议,最后输入 yes确认开始安装,安装会选择创建一个目录,选择完毕后回车进行安装
    • 安装完成后关闭当前终端

2)  构建Pyhton环境

    • 再开终端可以构建新的Python环境: conda create --name python36 python3.6

    • 这里给出查看和切换环境的相关指令,更多细节可以参考官方指导或者这篇帮助
    • conda -h      //查看帮助
      conda create --name python36 python=3.6 //基于python3.6版本创建一个名字为python36的环境
      conda activate python36                 //激活python3.6环境
      source activate python36
      //激活python36环境 conda list //查看环境下的包 deactivate python36 //退出当前python3.6环境 conda remove -n python36 --all //删除环境python36 conda env remove -n python36 //删除环境python36 conda info -e //查看所有安装的环境

3)  调试Python代码

    • 在激活python36环境后,可以观察到命令行前多了 (python36),输入 python可进入该环境下编写代码
    • 但在anaconda的python环境缺少一些库,没有这些库,编译代码就会报错:SyntaxError:invalid syntax
    • 这里我们先安装numpy、matplotlib这两个库: conda install numpy、conda install matplotli
    • 然后编译并执行代码(这段代码像是在写matlab)
    • from numpy import *
      from matplotlib.pyplot import *
      x = arange(0,361)
      y = sin(x*pi/180)
      plot(x,y)
      xlim(0,360)
      ylim(-1.2,1.2)
      title('SIN Function')
      show()

7、 容器打包并上传

1)  注册个人账号,创建个人仓库

    • 打开docker hub官网,注册用户
    • 注册完成后,创建个人公开库

2)  将容器打包成镜像

    • 打开命令提示符,根据容器创建镜像: docker commit (container ID)注册用户名/仓库名:tagname

3)  上传个人镜像

    • 上传镜像: docker push 20175113wr/20175113wr:version2

二、遇到的问题及解决

1、  无法开启Hyper-v服务:

  • 在Vm配置文件中添加:
  • hypervisor.cpuid.v0 = "FALSE"
    mce.enable = "TRUE"
    vhv.enable = "TRUE"
  • 重启虚拟机,再开启Hyper-v服务

2、  无法匹配镜像:

  • 将docker设置中 Docker Engine“experimental:false”改为“experimental:true”

3、  图形化界面:

  • 安装TightVNC,通过 TightViewer 连接容器端口构建图形化界面

4、  Pep9无法在容器环境上安装:

  • 指导老师建议我们在主机环境下安装测试Pep9环境

三、体会与收获

在这三周的课设过程中,我们使用了docker容器技术,在之前课程学习中曾多次使用虚拟机技术,相较于虚拟机,docker容器更加高效、方便,更适合开发环境和学习。

在这次课设中,我们遇到了各种各样的问题,在相互交流分享中,完成了这次课设,对自己学习、实践能力是一次全新的考验,也收获了课程成果。

四、参考文献和网址

《Docker技术入门与实战 第3版》

《Computer.Science.Illuminated.7th》

https://docs.docker.com/docker-for-windows/?utm_source=docker4win_2.2.0.5&utm_medium=docs&utm_campaign=referral

https://zhuanlan.zhihu.com/p/50864774

https://blog.csdn.net/xq929609968/article/details/97231817?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-9&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-9

https://blog.csdn.net/hbxtlhx/article/details/40395207?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-11&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-11

https://www.runoob.com/docker/docker-container-usage.html

https://www.zhihu.com/question/58033789

五、课设过程博客

第一周博客:配置Docker

第二周博客:部署容器和环境

第三周博客:环境拓展

六、安装信息安全专业导论学习容器指南

  1. 确认主机是否可以开启Hyper-v服务
    • 如果不能开启,建议安装使用上述Windows10 pro虚拟机
  2. 配置 Docker Desktop
  3. 配置 TightVNC
  4. 运行信息安全专业导论学习容器: docker run -p 6080:80 -p 5900:5900 20175113wr/20175113wr:version2 
原文地址:https://www.cnblogs.com/besti5113/p/12817138.html