1. 缘由
由于几年前我刚开始接触docker这个东西就觉得是挺神奇挺好用挺奈斯的一个创造性产品,它的思想是:“以此构建,到处运行”,真的是很方便,给开发和运维带来了很大的便利性,同时也是极大地简化部署难度,同时也带来了很大的效率提升,屏蔽了部署环境的差异引发的开发、运维之间的相互吐槽和刷锅行为,提升团队迭代开发效率,同时让生产效率也大大提高了,俗话说:”兴趣是最好的老师”,所以作者就开始了docker的学习实践之路,我相信云原生是未来软件架构的方向和标配,也是大势所趋。
刚开始由于不熟悉的情况下然后去各种查阅了一些资料,最后使用公司给我配置的docker电脑和我自己的电脑尝试从安装docker开始学习它,也踩了很多的坑看了大量的资料文档,付出一定的实践和尝试,之前就遇到一个很奇葩的问题,使用公司的电脑和自己的电脑安装docker一直无法使用打开还报了一个很奇葩的错误,后面还是没有得以解决,最后作者还在docker的github上提了一个bug,后面收到了回复,后面就没有管了,由于之前的这个bug就让我觉得在windows环境安装docker并使用确实是不好用,或许是当时的那个版本确实是有bug,自己的电脑的windows系统不兼容导致,所以本文使用的windows10版本
2. 准备工作
2.1Docker Desktop 官方下载地址: https://hub.docker.com/editions/community/docker-ce-desktop-windows
2.2升级wsl2
通常需要把wsl1升级到wsl2,查看wsl版本的命令 wsl -l -v,发现版本还是wsl1。下载链接:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
2.3WSL是什么?
适用于 Linux 的 Windows 子系统 (WSL) 可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、好用的工具和应用程序),且不会产生传统虚拟机或双启动设置开销。
3. 环境配置准备
3.1电脑环境配置:
3.2查看当前win10版本是不是最新版,如果不是则升级到最新版
查看当前版本,win+r打开运行窗口输入"winver"
3.3进入“程序和功能”,确认对应功能已勾选
说明window10操作系统上安装docker需要开启虚拟化的支持
3.4查看虚拟化是否开启
4. 安装步骤
注意:请以管理员身份打开 PowerShell 工具并运行以下命令
使用 wsl -l -v命令查看本地所有可以用的Linux发行版本
如果执行啥也没有就返回一个wsl的help的帮助使用打印说明你电脑上没有安装WSL支持的Linux发行版本,所以就必须去安装Linux发行版本
4.1启用 WSL 2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
4.2启用“虚拟机平台”
要在 Windows 10上启用虚拟机平台,请以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
要在 Windows 10上启用虚拟机平台,请以管理员身份打开 PowerShell 并运行:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
4.3设置 WSL 2 为默认值
以管理员身份打开 PowerShell,然后运行以下命令以将 WSL 2 设置为 WSL 的默认版本:
wsl --set-default-version 2
4.4安装 Linux 发行版
安装Linux发行版本的方法用两种:
4.4.1 windows的应用商店中
由于我的电脑是公司的台式机,所以由于网络问题,应用商店打不开,所以我才有下面的方式安装
4.4.2Windows10内置Linux子系统(WSL)镜像导入安装发行版系统
4.4.2.1获取发行版的tar文件:(这里以centos7.9为例子)
# 拉取centos 镜像
docker pull centos:centos7.9.2009# 创建容器,
docker run [imageId] # 列出所有容器找到centOS 的容器ID
docker ps -a# 导出容器生成tar文件
docker export -o ./centos.tar [containerId]
4.4.2.2# PowerShell运行
# 导入发行版到wsl,命令格式:wsl --import <DistroName> <InstallLocation> <InstallTarFile>
wsl --import CentOS "D:\Program Files (x86)\Centos7" "F:\DownLoad\centos.tar"# 查看安装的wsl
wsl -l -v# 启动并进入该系统
wsl -d CentOS# 指定默认的发行版
wsl -s CentOS
# 关闭相关实例
wsl --terminate CentOS# 卸载发行版
wsl --unregister CentOS
4.4.2.3更新yum
yum update -y
4.4.2.4添加特定用户:略过---这里不配置默认使用root用户
4.4.2.5启动发行版
wsl -d CentOS
4.5为安装的Linux发行版设置WSL的版本为2
wsl --set-version CentOS 2
5.安装Docker Desktop配置
注意:此方法仅适用于 Windows 10 操作系统专业版、企业版、教育版和部分家庭版!
电脑网络最好不要使用公司网络,因为公司网络有安全策略限制,否则Docker Desktop软件安装启动打开界面一直在卡着转圈圈,这就很尴尬,所以使用家庭网络或者使用自己手机开一个热点链接就可以出现如下界面:
资源配置:启用Linux发行版配置和开启wsl2的系统勾选上即可:
这里的选择Linux发行版的资源选择配置看上面----4.4安装 Linux 发行版,安装之后即可在这里选择到了
配置自己的阿里云镜像仓库地址:
参看:https://www.cjavapy.com/article/2089/
"registry-mirrors": [
"你自己的阿里云镜像加速地址"
]
注意:如果你不配置这个加速地址上面使用docker拉取一个centOs7.9的镜像就会超时拉取不下来,docker安装的时候,不管是windo10安装docker还是在vm虚拟机上安装docker都要配置这个加速地址,你可以选择其它国内的加速地址,只要网络能通,可以拉取到就可以了,只是我觉得阿里云的这个好用,还有免费的个人docker镜像仓库可以使用,就很方便的,配置了这个配置方便我们pull一些docker镜像,不让由于网路问题拉取不到你想要的镜像而超时,这个另当别论。
6. 构建最小jre镜像和应用镜像
Win+R输入cmd以管理方式运行,事先准备好以下文件:
Dockerfile_jre1.8.0_271.txt:构建最小jre8镜像的dockerfile的文件
Dockerfile.txt:构建业务镜像含有最小jre8的镜像和skywaliking-agent探针的业务基础镜像可以在java微服务项目中直接引入
5.1构建最小jre8
Dockerfile_jre1.8.0_271.txt内容如下:
执行:
docker build -f Dockerfile_jre1.8.0_271.txt -t zlf:jre8 .
5.2构建业务基础镜像
Dockerfile.txt内容如下:
执行:
docker build -f Dockerfile.txt -t zlf:jre8 .
上面两步骤执行结果:
可以将这个两个镜像推送到自己的阿里云镜像仓库