Docker的安装
一、 检查系统版本
Win10版本为家庭版,无法在官网安装docker,采取开Hyper-V模仿专业版安装 Docker Desktop
Cmd输入systeminfo检查,满足hyper-v要求。
新建bat文件运行下面程序,模仿专业版。
下载阿里镜像的docker文件
二、 进行docker安装
初次运行无法打开,Kitematic报错如下
Docker Quickstart报错如下
经查询,发现Oracle VM VirtualBox版本不正确,从官网上下载了6.1版本,此报错消失。
再次尝试运行,仍然报错:
根据报错提示,在start.bash中添加高亮部分代码解决
“${DOCKER_MACHINE}” create -d virtualbox --virtualbox-no-vtx-check “${VM}”
解决问题后docker顺利打开
三、 进行docker设置
首先关闭docker否则无法进行内存修改,docker关闭后打开Oracle VM VirtualBox
进入设置-系统,修改内存为3G左右(已修改完成)
进入网络-端口转发,添加主机端口与子系统端口都为8888的本地回环ip
添加共享文件夹
通过一下第一条指令为该共享文件夹添加 Symlink权限,并利用第二条指令验证添加是否成功。
四、 进行docker镜像加载
docker load -i F:\NJU_AIOT\part5_model_compression\image\demo_aiot_210707.tar产生如下报错
经查询需要退出docker,重新启动。
第一步:在命令行输入docker-machine start default
default为容器名,可以根据实际容器名替换,执行该命令,会提示Started machines may have new IP addresses. You may need to re-run the docker-machine env command.意思是默认的启动会重新分配ip地址,查看地址信息命令:docker-machine env
第二步:查看运行的机器,命令是docker-machine ls
第三步:查看环境信息,命令是docker-machine env --shell cmd default
第四步:根据第三步提示,执行命令:FOR /f “tokens=*” %i IN (‘docker-machine env --shell cmd default’) DO %i
操作后一切正常(当时上课没截图,重新在d盘导入了一次)
运行docker images
运行docker ps -a查询container id
docker run -d -p 8888:8888 -v /d/nju-aiot/part4_model_preparation/program_aiot:/home/assignment/ demo_aiot:210707 jupyter notebook
进入jupyter notebook
五、 进行docker镜像制作
构建docker镜像制作文件夹以及Dockerfile
docker build-t yby/ebox:v2 .构建完成
可以看见已经成功构建
在阿里云上创建镜像仓库
按指示将镜像推送到阿里云
推送完成后可以在阿里云中查看
Docker基本概念
Docker是一种容器化平台,它可以帮助开发人员将应用程序和其依赖项打包到一个可移植的容器中。下面是对Docker基本概念的理解:
容器:Docker容器是一个独立、轻量级的运行单元,它包含应用程序及其所有依赖项(例如库、环境变量、配置文件等)。容器可以在任何支持Docker的环境中运行,而且具有隔离性和可移植性。
镜像:Docker镜像是一个只读的模板,用于创建Docker容器。镜像包含了运行应用程序所需的所有文件系统、库和依赖项。可以将镜像视为一个应用程序的快照。
容器化:使用Docker容器化应用程序意味着将应用程序及其依赖项打包到一个容器中,并提供一种独立于底层操作系统的一致的运行环境。这使得应用程序在不同的环境中更加可移植和可靠。
Docker和VMware的不同之处:
虚拟化层次不同:VMware是一种硬件虚拟化技术,它在物理服务器上创建多个独立的虚拟机,每个虚拟机运行自己的操作系统。而Docker是一种操作系统级别的虚拟化技术,它在操作系统层面上创建容器,容器共享宿主机的操作系统内核。
资源利用效率:由于VMware虚拟机需要独立的操作系统,所以每个虚拟机都需要占用相应的内存和存储资源。相比之下,Docker容器可以共享宿主机的操作系统内核,因此更加轻量级,占用更少的资源。
启动速度:由于Docker容器共享宿主机的操作系统内核和文件系统,因此启动时间通常比VMware虚拟机更快。这使得Docker容器适用于需要快速启动和扩展的场景,如微服务架构。
隔离性和安全性:VMware虚拟机提供了更强的隔离性,每个虚拟机都运行在独立的环境中,相互之间不会影响。而Docker容器虽然共享宿主机的内核,但容器之间使用Linux内核的命名空间和控制组来实现隔离,因此在安全性方面也有一定的保障。
docker基本用法
docker run:从 Docker 镜像创建并运行一个容器。
docker ps:列出当前正在运行的容器。
docker stop:停止一个正在运行的容器。
docker rm:删除一个容器。
docker images:列出本地主机上的镜像。
docker rmi:删除一个镜像。
docker pull:从镜像仓库中拉取或者更新指定镜像。
docker build:用来从 Dockerfile 构建镜像。