云计算技术 实验一 安装docker系统并熟悉docker命令
需要使用厦门大学林子雨老师的实验镜像进行实验,使用的操作系统为VirtualBox。
VirtualBox下载地址为:Downloads – Oracle VM VirtualBox
镜像为:大数
环境为windows11,虚拟机为16.04。 需要使用厦门大学林子雨老师的实验镜像进行实验,使用的操作系统为VirtualBox。 VirtualBox下载地址为:Downloads – Oracle VM VirtualBox 镜像为:大数据Linux实验环境虚拟机镜像文件_厦大数据库实验室博客 如若系统之前安装过docker,则可以完全卸载干净,如 ubuntu 完全干净的卸载docker_nativeCloud的博客-CSDN博客_ubuntu卸载docker 在VirtualBox开始界面左上角选择管理->导入虚拟电脑。 1.实验学时 4学时 2.实验目的 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 /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 权限便可以访问和修改虚拟机中的配置文件。 (编辑:海南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |