Docker环境配置
山东大学 计算机科学与技术 学院
云计算技术 课程实验报告
学号:202000130199 | 姓名: 荆树吉 | 班级: 20 数据 |
---|---|---|
实验题目:虚拟化技术练习四Docker | ||
实验学时:2 | 实验日期: 2023.4.15 |
实验目的:
熟悉Docker虚拟化环境。
具体包括:了解Docker虚拟化环境的配置和部署,完成实验环境及实验工具的熟悉,包括使用官方镜像运行容器,以及借助官方镜像构建、运行自己的镜像和容器,撰写实验报告。
硬件环境:
联网的计算机一台
软件环境:
.15.0-69-generic #76~20.04.1-Ubuntu SMP Mon Mar 20 15:54:19 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
实验步骤与内容:
了解Docker虚拟化环境的配置和部署
sudo apt-get -y install docker.io
安装完成后执行 docker,表明安装成功。
sudo docker pull ubuntu
安装完成之后默认会启动docker服务,如果没有启动和正常服务一样启动就好
docker version
使用官方镜像运行容器
查看下载到本地的所有镜像
docker images
查看容器
docker ps -a
删除镜像
docker rmi +镜像名
docker rmi +镜像标签
下载镜像
docker pull +镜像名
查看是否拉入镜像
已拉入
创建容器
docker create -it cengos:7 /bin/bash //创建一个新的容器但不启动它 #/bin/bash 交互 对应的镜像名
#选项:
-i : 让容器的标准输入保持打开
-t : 分配一个伪终端
-d : 后台守护进程的方式运行
#去查询容器会发现状态为Created
启动容器
docker start 容器ID
打开刚刚创建的容器
停止容器
docker stop 容器id
停止刚刚打开的容器
容器已经被停止
借助官方镜像构建、运行自己的镜像和容器
① 建立dockerfile文件
(1) 新建工作目录dockertest,并新建Dockerfile。使用的命令如下:
mkdir dockertest
cd dockertest
touch Dockerfile
使用ls查看当前目录下的文件
(2) 使用vim编辑Dockerfile
其中,
FROM :定制的镜像都是基于 FROM 的镜像,也就是说,你的docker容器的系统。这里用的是ubuntu:latest,详细用法不再这里介绍,你可以在dockerhub上找其他的镜像。
WORKDIR:你的工作目录,当你运行容器后,是一个ubuntu系统,在根目录会建立一个Mydata的目录。
RUN:你可以暂且理解为制定镜像时,为ubuntu系统配置环境,安装一些包的命令执行过程。这里的run是我要配置一个opencv环境所要进行的操作,你可以按照你自己的需求来。
CMD:执行docker run时默认执行的命令,docker在运行时可以指定新的命令来替代镜像设置中的这个默认命令,比如,ubuntu 镜像默认的 CMD 是 /bin/bash,如果我们直接 docker run -it ubuntu 的话,会直接进入 bash。我们也可以在运行时指定运行别的命令,如 docker run -it ubuntu cat /etc/os-release。这就是用 cat /etc/os-release 命令替换了默认的 /bin/bash 命令了,输出了系统版本信息。
② 制作docker镜像
在有Dockfile的这个目录下,执行该命令:
sudo docker build -t ubuntudocker:new .
由于自建的镜像较大,故只提供部分截图
可以使用下面的命令浏览有哪些镜像:
③运行docker容器
内部容器已经可以使用python3.10.6环境
打包镜像同上
结论分析与体会:
docker是一种轻量级的虚拟机,docker是一个用于开发、交付、和运行应用程序的开放平台。
在linux容器里运行的开源工具:容器引擎,让开发者可以打包大量的应用及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或者window机器中
进行实验的过程中需要不断的安装新的环境,要注意环境的兼容性
自己镜像的创建很费时间
docker引擎统一了基础设施环境–docker环境
docker引擎统一了程序打包(装箱)方式,docker镜像(把引擎放在镜像中,带着经i选哪个到处跑
docker引擎统一了程序部署(运行)方式–docker容器(利用引擎把这个镜像再去运行为之前的一摸一样的容器)