上次在Windows系统上部署成功Ubuntu系统,这次准备在Windows上部署docker desktop应用
这个应用软件类似于虚拟机,可以在该应用软件上部署多个镜像容器。其最直观的表现就是可以借用Windows和Ubuntu终端来访问docker“模拟的系统”。
Docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
- 1.
DockerClient客户端
- 2.
Docker Daemon守护进程
- 3.
Docker Image镜像
- 4.
DockerContainer容器
Docker部署
Docker部署强烈参考Windows Docker 安装 | 菜鸟教程,在此十分感谢
Docker Desktop安装
0.0
官方下载链接
Docker: Accelerated Container Application Development
docker 推出了不同系统支持的版本,这里我们下载支持Windows的docker desktop。
0.1
注意管理员安装后,需要重启电脑(注意保存资料)
重启后,稍等片刻弹出如下,点击接受,纯个人使用免费
0.2
默认选择自动配置,点击finish
0.3
选择登录或不登录,我这里选择不登录
0.4
如实填写,点击continue
0.5
0.5.1
安装完成后,会在Windows桌面出现一个Docker Desktop小图标
0.5.2
注意!!!
点击Docker Desktop,打开发现持续很长时间,这是因为Docker Desktop有两个依赖没有安装上
Docker Desktop依赖部署
Hyper-V启用
Hyper-V是Windows系统默认自带的虚拟机,如果没有Hyper-V,需要检查自己的系统是否完整
这里提供两种安装方式
第一种,命令行方式
0.0
找到powershell,鼠标右键以管理员身份运行
//PowerShell一般在自己的系统用户名目录下,找到
C:\Users\自己的系统用户名目录下\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
0.1
直接使用管理员打开PowerShell,输入如下命令,该命令用来启动Hyper-V
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
if(出现如下情况,表明没有启动Hyper-V,输入yes启动),需要重启,注意文件保存!!!
else if(出现如下情况,表明启动了Hyper-V,不需要任何操作,进行下一步)
第二种,窗口勾选方式
0.0
选择电脑桌面右下角,找到如下图标(或者是网络图标),在该图标上点击鼠标右键,打开网络和Internet设置
0.1
弹出如下窗口,点击网络和共享中心
0.2
弹出如下窗口,点击控制面板主页
0.3
弹出如下窗口,点击程序
0.3.1
注意!!!如果弹出的是如下两个窗口,点击查看方式,选中类别
0.4
点击程序后,弹出如下窗口,点击启用或关闭Windows功能
0.5
弹出如下窗口,找到Hyper-V,左边的+全部展开,都勾选上,点击确定,弹出重启窗口,确定重启,重启后就会启用了。
WSL安装
安装WSL链接,强烈推荐参考,十分感谢
安装 WSL | Microsoft Learn
一、命令行安装
注意!!!默认安装Ubuntu的Windows子系统,如果需要安装其他子系统参考上方链接
0.0
右键管理员权限打开PowerShell,输入如下命令联网安装WSL,之后重启即可
wsl --install
二、手动安装
如果Windows系统更新被禁止或者系统不支持访问MicroSoft网络,或者Windows系统版本受支持过期等愿意,可以手动安装
旧版 WSL 的手动安装步骤 | Microsoft Learn
这里选择安装Ubuntu2204-221101.AppxBundle
0.0
右键安装或者鼠标双击安装
0.1
耐心等待安装完成即可
0.2
输入自定义用户名(除root和不要大写,root是根用户),然后按照提示输入密码,即安装上WSL
0.3
WSL安装成功后,Docker Desktop要想能用,还需要启用WSL,输入如下命令
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
//或者
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
//并设置默认WSL2。WSL有两个版本,WSL1和WSL2,注意!!!设置如下命令,WSL必须已经启动
wsl --set-default-version 2
0.4
WSL安装之后,建议重启
Docker部署验证
检测Hyper-V状态
右键管理员权限打开PowerShell,输入如下命令
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
检测WSL状态
打开自的Ubuntu,方法:从,左下角的放大镜,输入Ubuntu,即可看到
检测docker状态
双击桌面Docker Desktop,出现如下页面,恭喜启动成功
Docker使用
获取Base镜像
Docker是容器,镜像则是工具,获取镜像纳入容器里头,Docker就活了。
(注意这里的镜像是兼容Docker的镜像,并不是iso等格式镜像)
镜像链接:https://hub.docker.com/
查看镜像
检测Docker容器内是否存在镜像,Win+R,在运行窗口输入cmd,打开Windows终端(cmd),输入如下命令
docker images
如果是这种,表明容器内是空的,没有镜像
REPOSITORY:镜像的仓库源
TAG:镜像的标签(同一个仓库源可以有不同的标签,可以代表不同的镜像版本)
IMAGE ID:镜像的ID
CREATED:镜像创建时间
SIZE:镜像大小
0.1
获取镜像有两种方法
0.1.0
如果本地有docker镜像包,直接输入如下命令将镜像推入容器内
docker load -i ./镜像包
0.1.1
我没有,所以我需要联网下载,这里我使用Ubuntu镜像
输入如下命令,会联网下载Ubuntu22.04版本的镜像(如果想下载最新版镜像,不写版本号,直接docekr pull ubuntu即可)
docker pull ubuntu:22.04
docker images //查看是否下载成功
创建Base镜像容器
输入如下命令,来运行Ubuntu22.04镜像,创建一个容器,并命名,使用exec来进入容器(exec进入容器后,使用exit退出容器后,容器不会终止而是在后台运行)
docekr run -itd --name my_ubuntu22.04 ubuntu:22.04
docekr exec -it my_ubuntu22.04 /bin/bash
-i是交互式操作
-t是运行终端
-d是在后台运行
--name表示给ubuntu镜像创建的容器起一个名字,这里我给新创建的容器起名为my_ubuntu22.04
ubuntu:22.04是ubuntu仓库源+版本号的结合体,用来指定为哪一个镜像创建一个容器
查看容器
docker ps -a
CONTAINER ID:容器的ID
IMAGE:创建容器的镜像(一般是仓库源+版本号组成)
COMMAND:运行容器指定要运行的命令终端工具
CREATED:容器被创建的时间
STATUS:容器的状态
PORTS:端口(一般涉及到Web)
NAMES:容器的名字(可以通过--name自定义容器名字)
启动Base镜像容器
启动Base镜像容器有两种
0.0
输入run命令,创建一个新的容器并直接启动和进入容器(run命令会在镜像的基础上创建一个新的容器),没有--name,会自动创建一个容器名字
docker run -it my_ubuntu22.04 /bin/bash
0.1
输入start命令,启动一个已有的容器,不会直接进入容器(如果想直接进入容器,使用docker start -i <容器ID/容器名字>)
docker start <容器ID/容器名字>
进入已启动的Base镜像容器
进入已经启动的容器,一般是因为-d(后台运行)或者start不带-i的缘故,需要进入容器有两种方式
0.0
使用attach命令(退出后,容器会终止)
0.1
使用exec命令(exec命令进入容器,exit后,容器并不会终止,而是在后台继续运行)
退出/停止Base镜像容器
退出容器,直接输入exit即可,停止容器,使用stop即可
重启Base镜像容器
使用restart命令重启容器
导出Base镜像容器
使用export命令导出Base镜像容器到本地
docker export my_ubuntu22.04 > E:\docker-images\Ubuntu22.04.tar
//注意文件夹命名不能带空格,否则导出失败
导入Base镜像容器
0.0
使用import命令导入镜像(会创建一个新的镜像,容器并没有增加)
0.1
使用load命令导入
docker load -i <容器>
//需要注意的是,load导入镜像需要Dockerfile文件,Dockerfile后续在接着讲解
删除
删除容器,使用rm命令
删除镜像,直接打开Docker Desktop应用界面, 点击垃圾桶删除即可