云计算课程实验
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

102 行
4.1 KiB

  1. # Assignment 2 指南
  2. ## `******注意,实验结束请立即删除云主机,节省费用******`
  3. ## `******注意2,实验未结束且短期内不会继续实验,也请删除云主机。下次实验时重新创建******`
  4. ## 实验内容
  5. - 安装Docker并测试:`实验步骤 一)`
  6. - 了解并学习简单的Docker指令:`实验步骤 二)`
  7. - 利用Docker部署一个简单的静态网页App :`实验步骤 三)`
  8. - 使用Dockerfile完成复杂应用的搭建:`实验步骤 四)`
  9. ## 实验要求(仔细看)
  10. - #### 完成所有步骤,并在实验报告([模板下载](file/assignment1/学号-实验一.docx))中完成穿插在本指南中的`作业1~作业4`(只需要截图)。实验报告转成`“学号-实验二.pdf”`,并上传至http://113.31.104.68:3389/index.htm
  11. - #### 实验报告上传deadline:`10月xx日`
  12. ## 使用产品
  13. 云主机uhost, 私有网络vpc,基础网络unet, Docker相关技术
  14. ## 需要权限
  15. 云主机uhost, 基础网络unet
  16. ## 实验步骤
  17. ### 零)前期工作
  18. #### 请根据Assignment1的要求[创建云主机](Assignment1.md),并使用ssh远程登录(可以直接使用root用户进行后续操作)
  19. ### 一)安装Docker并测试
  20. #### 1. Docker是什么?
  21. > 一个开放源代码项目,通过在Linux上提供**OS级虚拟化**的附加抽象层和自动化层,使**容器**内软件应用程序的部署自动化。
  22. #### 简单来说,Docker是一种工具,它使开发人员,系统管理员等可以轻松地在沙盒(称为*容器*)中部署其应用程序,以在主机操作系统(即Linux)上运行。Docker的主要好处是,它允许用户将**具有所有依赖关系的应用程序打包到**用于软件开发**的标准化单元**中。与虚拟机不同,容器不具有高开销,因此可以更有效地利用基础系统和资源。
  23. #### 2. 在Linux上安装Docker环境
  24. > 直到几个版本之前,在OSX和Windows上运行Docker还是很麻烦的。但是,最近,Docker已投入大量资金来改善其用户在这些OS上的入职体验,因此,现在运行Docker是一个轻而易举的事。
  25. #### 这里只介绍如何在Linux上安装和运行Docker, 如果同学们想要在其他系统上尝试使用Docker,可以参考Docker官网给出的教程(如何在[Mac](https://docs.docker.com/docker-for-mac/install)、[Linux](https://docs.docker.com/install/linux/docker-ce/ubuntu)或[Windows]([Windows](https://docs.docker.com/docker-for-windows/install))上使用Docker)
  26. #### a) 安装docker
  27. #### b) 测试Docker是否安装成功
  28. #### 当你的按照上述步骤安装完docker之后,可以通过运行如下命令来测试docker是否安装成功
  29. ```bash
  30. $ docker run hello-world
  31. Hello from Docker.
  32. This message shows that your installation appears to be working correctly.
  33. ...
  34. ```
  35. #### . 尝试使用busybox
  36. > 到此为止,你的docker环境已经安装完成并且正常运行,接下来我们尝试一些更加复杂的工作
  37. #### 在这个部分,我们将要通过`docker run`命令去开启一个`BusyBox container`
  38. #### 首先,我们通过运行如下命令从互联网拉取`BusyBox Image`:
  39. ```bash
  40. $ docker pull busybox
  41. ```
  42. > 如果运行过程中遇到 **permission denied** 此类的错误,可以尝试在命令前加入 **sudo** 命令
  43. #### **pull** 命令可以将`busybox image`从docker仓库中拉取到本地,你可以使用**docker image**命令查看系统上目前已有的**image.
  44. ```bash
  45. $ docker images
  46. REPOSITORY TAG IMAGE ID CREATED VIRT
  47. busybox latest c51f86c28340 4 weeks ago 1.10
  48. ```
  49. #### 我们接下来继续尝试使用`docker run`命令来运行`busybox`
  50. ```bash
  51. $ docker run busybox
  52. $
  53. ```
  54. #### 可以发现命令运行完,什么也没有发生。这不是bug,当我们执行`docker run`命令时,docker会从本地查找`image`,然后加载`image`并在容器中运行command。让我们加入自定义的command再试一次
  55. ```bash
  56. $ docker run busybox echo "hello from busybox"
  57. hello from busybox
  58. ```
  59. **************作业1:请将上述涉及docker run/image的操作界面截图,并插入实验报告中***************