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

 

北京电子科技学院

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

基于Windows的信息安全专业导论

学习容器的构建

 

 

 

 

 

 

小组成员姓名:20175133于沛辰

 

指导教师:娄嘉鹏      

 

提交时间:202053日   

一、实践理解

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。据我了解到,Docker 正是众多容器技术中的佼佼者,所以这次实践选用docker来完成课题。

 

二、列出自己的贡献

因为我们每个人都部署了信息安全专业导论学习容器,工作量一致,在构建容器过程中,小组成员互相学习讨论,相互借鉴,终于完成了本次课程设计,所以排名不分先后

20175133 于沛辰:解决安装docker过程遇到的问题

 

三、实践步骤

(1)安装Windows10 pro虚拟机

·下载镜像文件,配置Windows10 pro环境:在迅雷直接下载 thunder://QUFodHRwOi8veHozLmRhb2hhbmc0LmNvbS9jbl93aW5kb3dzXzEwX2NvbnN1bWVyX2VkaXRpb25zX3ZlcnNpb25fMTkwOV94NjRfZHZkXzc2MzY1YmY4Lmlzb1pa 

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

·开启Hyper-v服务

(2)安装docker

·官网下载Docker Desktop

·安装并测试docker

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

·安装TightVNC:官网下载并安装TightVNC

·输入指令 docker run -p 6080:80 -p 5900:5900 dorowu/ubuntu-desktop-lxde-vnc:xenial 下载和运行图形化的ubuntu容器

·使用VNC远程连接容器端口建立容器图形化界面:在菜单里找到应用程序TightVNC View,并输入远程地址 127.0.0.1:5900获得连接

·更新源,配置python3.6、python3-pip:更改下载源找到文件夹 /etc/apt/sources.list 命令行输入指令 apt-get update更新软件源

 

·调试python环境:输入指令 apt install python3.6 和 apt install python3-pip 安装Python环境

(4)配置vscode环境

·在图形化容器中打开浏览器,在vscode官网下载需要的软件,如下图,选择 .deb

·下载完成后见安装包,输入指令安装vscode dpkg -i code_1.44.2-1587059832_amd64.deb

·打开vscode

·在应用拓展中搜索关键词,安装语言包、Python拓展包,C/C++拓展包

   

·安装成功后调试之前建的Python文件,可以看到可以正常打开调试

(5)安装并测试pep/9环境

·直接在主机上打开进入Pep/9官网,选择Pep/9 Windows版下载,下载完成后按默认选项安装即可正常打开使用

 

该应用程序是用c++编写的,使用Digia Plc提供的Qt Creator IDE在Qt 5开发环境下编译。

2.测试Pep/9环境

·测试1:打印“Hi”,在Source Code区输入汇编指令:

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

代码解析:

复制代码
D0 00 48   //把 H 放入累加寄存器
F1 FC 16   //打印累加寄存器中存储的字节
DO 00 69   //把 i 放入累加寄存器
F1 FC 16   //打印累加寄存器中存储的字节
00         //停止
zz         //结束标识符
复制代码

执行后:

·测试2:倒序输出字节(16进制机器指令),在Object Code区输入16进制汇编指令:

D1 FC 15 F1 00 13 D1 FC 15 F1 FC 16 D1 00 13 F1 FC 16 00 zz

·解释:

D1 FC 15  //将输入设备中的第一个字符读入计数器
F1 00 13  //将字符从计数器存储到内存中
D1 FC 15  //将第二个字符从输入设备读入计数器
F1 FC 16  //将第二个字符打印到输出设备
D1 00 13  //从内存中加载第一个字符
F1 FC 16  //打印第一个字符到输出设备
zz        //结束标识符


(6)拓展内容-配置anaconda环境

Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,所以也称为Python的一种发行版。

·在图形化中打开anaconda官网并下载anaconda,下载好后见安装包

·在终端输入指令 bash Anaconda3-2020.02-Linux-x86_64.sh 安装一下anaconda

·中途阅读相关条例时回车略过,最后输入yes完成安装

·输入anaconda-navigator运行图形化界面

·安装完成后关闭当前终端,新打开一个终端后输入指令构建新的Python环境: conda create -name python36 python3.6

·输入指令安装一下numpy、matplotlib这两个库,防止后面会报错

conda install numpy
conda install matplotlib

 

·这里给出查看和切换环境的相关指令,更多细节可以参考官方指导或者这篇帮助

复制代码
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 //查看所有安装的环境
复制代码

·编译执行一下下面的代码(召唤小海龟写Z)

import turtle  //引入一个绘图库
turtle.goto(100,100)
turtle.goto(100,-100)
turtle.goto(-100,-100)
turtle.goto(-100,100)
turtle.goto(0,0)

 

(7)容器打包并上传

·注册个人账号,创建个人仓库,将容器打包成镜像,上传个人镜像

·之前下载时就已经注册过docker账户,所以直接创建个人库(我这里账户名和库同名) ypc20175133

·先输入指令 docker ps -a  查看所有的容器的信息

·执行以下命令完成镜像的传输:

  创建容器镜像: docker commit a5751e1ddef6 ypc20175133/ypc20175133:vs_1

  上传镜像: docker push ypc20175133/ypc20175133:v_1

  从库中下载镜像: docker pull ypc20175133/ypc20175133:v_1

  释义:

a5751e1ddef6 //上图第一列容器所对应的CONTAINER ID

ypc20175133/ypc20175133:vs_1 // docker注册名/库名称:设置的容器名称

 

四、遇到的问题及解决方法

1、计算操作系统机位数不统一

·因为电脑配置问题,我的操作系统系统是32位的,通过学习了解老师提供的教材,我得知此次实践因该在64位的操作系统下完成,于是我上网查了一下方法下载了一个CPU-Z查看了一下电脑CPU支持虚拟化

2、虚拟机无法打开虚拟化

·无法打开Hyper-v:一打开时会提示“启用虚拟化”,修改vm文件夹下的.vmx文件,添加下图语句,最后功打开Hyper-v

3、内存问题

·安装docker后第一次打开,遇到了内存不够,重新配置了一下虚拟机,算是解决了

4、有关镜像

·遇到镜像无法复制的问题,在settings中选择Docker Engine,修改底下的代码“false→true”

 

5、有关Pep/9

·主机环境下安装测试Pep9环境

五、实践体会

  通过为期三周的实践学习,让我对一个新的知识领域——容器有了一定的了解,也对虚拟化技术有了一定的了解,实践过程中遇到了许多闻所未闻的问题,但是在小组商讨和在网上查阅了大量资料后,问题都算逐一解决,尤其是面对pep9时,在学习资源不足时,在官网的英文介绍下了解到了它的运行机制和原理。整个实验过程中,我遇到的问题可以说是最多的,但是看到自己配置的容器成功运行时,内心还是很有成就感的。

 

六、参考文献和网址

·《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 pull 镜像名 
  • 上传镜像: docker push 镜像名 
  • 运行容器: docker start 容器名 
  • 构建镜像: docker commit 容器名 镜像名 
  • 拉取镜像并运行一个容器: docker run 镜像名 
  • 列出全部镜像: docker image ls 
  • 列出全部容器: docker container ls --all 
  • 删除容器: docker rm 容器名 
  • 删除镜像: docker rmi 镜像名
posted @ 2020-05-03 18:08  YuPPP  阅读(121)  评论(0编辑  收藏