云计算技术 实验一 安装docker系统并熟悉docker命令

环境为windows11,虚拟机为16.04。

需要使用厦门大学林子雨老师的实验镜像进行实验,使用的操作系统为VirtualBox。

VirtualBox下载地址为:Downloads – Oracle VM VirtualBox

镜像为:大数据Linux实验环境虚拟机镜像文件_厦大数据库实验室博客

如若系统之前安装过docker,则可以完全卸载干净,如

ubuntu 完全干净的卸载docker_nativeCloud的博客-CSDN博客_ubuntu卸载docker

在VirtualBox开始界面左上角选择管理->导入虚拟电脑。

1.实验学时

4学时

2.实验目的

  • 熟悉Docker系统的安装
  • 掌握Docker系统的基本命令
  • 掌握Docker File的编写

3.

3.实验内容

(1)安装虚拟机和Linux环境。

安装之后:

 

(2)安装Docker系统,并启动docker服务,打印Docker版本信息。

启动docker服务

Docker版本信息:

 (3)完成Docker的基本操作(镜像、容器)

首先配置

下载完对应镜像之后,需要在linux中对应的docker文件下创建daemon.json文件输入内容.

之后使用vim打开编辑.

修改之后重启:

使用help查看命令:

镜像操作:

查找镜像:查找go语言

下载go语言,mysql

查看下载的镜像

删除镜像:删去hello-world

获取mysql信息

容器操作:

先下载一个镜像:

新建,运行,输出容器:

查看所有容器:            

查看容器ID

启动之前停止的容器

停止之前启动的容器:

删除容器

查看日志

进入正在运行的容器,打开交互式终端

拷贝文件:

容器中的文件拷贝到主机

先创建一个容器zhou-a

创建存放文件的目录,创建文件夹b

主机中的a.txt   x.txt 文件拷贝到容器中,拷贝到文件夹b

拷贝a.txt文件,使用ls -al /b 命令显示容器内文件夹中的文件

拷贝x.txt文件

将容器内的a.txt文件传入主机lib文件夹下

获取容器信息:

(4)使用Dockerfile构建镜像

首先创建Dockerfile文件,以及对应的路径.

之后使用gedit修改Dockerfile中的文件信息,输入对应的内容

之后构建版本,创建镜像;

查看新创建的镜像:

之后使用新建的这个镜像映射端口.

之后在浏览器上面测试是否已经运行apache

成功运行。

之后编写常用的命令

先在之前的文件夹下打开文件进行编写

1.指定容器运行的用户,可以向文档里面加入USER shiyanlou

2.指定后续的命令执行目录:WORKDIR /var/www/html

3.对外连接端口号:EXPOSE 80

4.设计主机的名字:ENV HOSTNAME shiyanloutest

5. 向镜像中增加文件:COPY simplecloudsite /var/www/html

6.使用ADD命令添加本地的tar压缩包命令,使压缩包自动压缩,同时可以自动下载URL并且拷贝到镜像。

ADD html.tar /var/www

ADD http://www.shiyanlou.com/html.tar /var/www

ADD html.tar /var/www

7. 将apache访问的日志数据存储到宿主机可以访问的数据卷中:

VOLUME ["/var/log/apche2"]

8.设置容器内的环境变量

使用ENV设置apache启动的环境变量

7.使用supervisord

如果需要运行多个服务,最好需要在不同的容器中运行,使用link进行连接。需要在一个容器中运行多个服务是可以考虑使用supervisord进行进程的管理。这种方法就是将多个启动命令放在一个启动脚本中。

使用supervisord需要使用安装命令。

RUN apt-get install -yqq supervisor     RUN mkdir -p /var/log/supervisor

需要将配置文件进行拷贝

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

#配置文件内部内容

[supervisord]

nodaemon=true

[program:apache2]

command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2ctl -D FOREGROUND"

修改CMD命令用于启动supervisord

CMD ["/usr/bin/supervisord"]

经过整理之后得到文件:

之后编写一个json文件,将上面的代码放在.json里面

之后下载静态页面文件压缩包

之后创建镜像信息:

查看镜像:

查看镜像详细信息:

之后根据这个镜像创建新容器web2,并且映射本地的80端口到容器的80端口。

之后打开浏览器,输入127.0.0.1查看网站。

4.思考题

(1)安装Docker的时候遇到什么问题?采用什么方法解决的?

安装Docker时,使用apt update更新软件时下载速度过慢,这个时候可以修改下载源为清华云.

    配置镜像加速时,需要新建.json文件,使用gedit方法打开更快.

如果之前不小心设置过错误的容器,可以使用docker ps -l 方法删除容器

 (2)Docker容器操作和虚拟机有啥区别,各自的优缺点有哪些?

区别:

虚拟机是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行的Ubuntu应用。

Docker仅仅是封装函数库,并没有模拟完整的操作系统.Docker只是一个系统进程,虚拟机是在操作系统中的操作系统.

Docker优点:

1. Docker容器很快,启动和停止可以在秒级实现,这相比传统的虚拟机方式要快得多.

2. Docker容器对系统资源需求很少,一台主机上可以同时运行数千Docker容器。

3. Docker通过类似Git的操作来方便用户获取、分发和更新应用镜像,指令简明,学习成本较低。

4. Docker通过Dockerfile 配置文件来支持灵活的自动化创建和部署机制, 提高工作效率。

Docker缺点:

1.与虚拟机相比,隔离性不好.容器之间共享同一个操作系统内核以及其他组件,在收到攻击之类的情况发生时,更容易通过底层操作系统影响到其他容器。

2.性能问题.当同一虚拟机或者服务器下面的容器需要更高并发量支撑的时候,也就是并发问题成为应用瓶颈的时候,容器会将这个问题放大.

3.存储方案.容器本身不是为操作系统抽象服务的.容器为了实现数据持久化需要使用volume接口形成数据的映射和转移.这样的话会造成一部分资源浪费和更多的交互产生,这并不是很好的方案.

虚拟机缺点:

1.虚拟机占用的资源更多.虚拟机会独占一部分内存和硬盘空间。虚拟机运行的时候,其他程序就不能使用这些资源了。

2.操作步骤过多.虚拟机是完整的操作系统,与容器不同的是,一些系统级别的操作比如说用户登录虚拟机无法跳过.

3.虚拟机启动慢.启动虚拟机所需的时间慢,需要等到虚拟机成功启动之后才能使用程序.

虚拟机优点;

1.与宿主机隔离.在虚拟机中进行的操作,不会影响到宿主机,他们之间是完全隔阂的.

2.软件测试更加便捷.由于虚拟机可以进行虚拟化,可以模拟多个特定的使用场景,对软件进行不同环境下的测试.

3. 更容易复制和迁移.虚拟机可以很容易地复制和迁移。只要其它的宿主机系统支持该虚拟化程序,你就可以很容易地迁移它,而没有特别要求。

4. 便于调试.操作者以快速尝试大量的调试方法而无需考虑影响。同时,如果宿主机是 Linux 系统的话,无需宿主机上的 root 权限便可以访问和修改虚拟机中的配置文件。

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stearm210

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值