环境为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. 更容易复制和迁移.虚拟机可以很容易地复制和迁移。只要其它的宿主机系统支持该虚拟化程序,你就可以很容易地迁移它,而没有特别要求。文章来源:https://www.toymoban.com/news/detail-745104.html
4. 便于调试.操作者以快速尝试大量的调试方法而无需考虑影响。同时,如果宿主机是 Linux 系统的话,无需宿主机上的 root 权限便可以访问和修改虚拟机中的配置文件。文章来源地址https://www.toymoban.com/news/detail-745104.html
到了这里,关于云计算技术 实验一 安装docker系统并熟悉docker命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!