热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Docker系列之DockerDesktop初步安装

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。



用简单的话来讲,它就是一个轻量级的虚拟机,类似于 VMware Workstation 和 VirtualBox 的轻量版,没有那么重(Docker 只有几十 M 左右,虚拟机都上 G 的大小),当然,对于 linux 系统来讲,它就是基于 linux 自身的一个虚拟机,所以,启动快,运行也快,但是,资源(cpu,内存,网络,存储)都是隔离的,现在 Windows 也有这样的概念吧,它就是容器,应该跟 Docker 是一个概念,所以,现在有 Linux 容器和 Windows 容器两种容器(Windows 的容器太大,我试了都几个 G)。



DockerDesktop,不仅仅可以在 Windwos(Win10++)安装,其实现在也可以在 MAC 和 Linux 里安装,参考地址[1]。



开发的时候,用 Visual Studio 2022 之类的 IDE 是可以把服务直接运行到 Docker 服务里的,所以,在开发的机器上安装一个适用的 Docker,在日常工作中,也是十分的方便的。



特别是,我想安装一个数据库,又想安装一个 Redis 和 Nginx,但是,又不想它们与我的系统之间有太多的交叉联系,那么,就可以用 Docker 来实现这些服务的隔离,不用了,直接结束了就好,省的,它还在后台一直运行(类似,Mysql)。



所以,从隔离性上来讲,Docker 是一个很方便的服务,用着也方便。



DockerDestop 的安装

分为两个步骤,第一个是设置好 WSL2 的环境,第二个就是下载 DockerDesktop 应用。


设置好 WSL2 (Windows Subsystem for Linux) 的环境(Windows 子系统和 hyper-v)

windows 桌面端的 docker 是基于 Windows 子系统(WSL2)的,所以,得把这个功能从控制面板里打开(hyper-v 不开启也是可以的)。

同时要打开的还有 Hyper-V 功能。(注:最新版的 VMware Workstation 是可以与 Hyper-V 共存的)

配置后,会重启电脑,按照提示保存好重要的资料,重启即可。

也可以通过以下 PowerShell 或 CMD 命令来实现

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

开启了功能后,还是需要安装具体的 linux 系统,我这边是通过 Microsoft Store 里搜索 Ubuntu 22.04 LTS 进行安装的,
Ubuntu 22.04 LTS 是通过控制台方块字进行操作的,也可以下载 Ubuntu 20.04 LTS 版本或者 18 版本。

如果 Microsoft Store 打不开,或者太慢,也可以通过链接通过迅雷等工具下载,速度也挺快,

地址就在参考地址里(参考地址[2])。

离线下载完之后(Ubuntu2204-220620.AppxBundle),是这样子的,打开后,跟 Microsoft Store 打开是一样的。

运行后,就到了这个界面

然后选择,所需的语言,我直接选中文了。

然后,选择,账号和密码,自己设置一个

然后,就是所挂载的目录,默认就可以了。

然后,开始应用你自己的更改,开始安装了。

安装完毕,然后,重启

安装成功,欧耶

至此,WSL 已经安装成功了,但是,还要设置成 WSL2 模式,可以通过以下命令。

wsl //进去子系统,也就是从cmd进入到 linux的 bin命令行wsl -l -v //查看所有安装的子系统,可以有多个wsl -s name // wsl -s ubuntu 设置 ubuntu为默认子系统wsl --set-default-version X // wsl --set-default-version 2 设置默认系统为 2也就是WLS2wsl --set-version ubuntu X // wsl --set-version ubuntu 2 设置指定子系统版本为2wsl --status //查看当前子系统状态wsl --list --verbose // 可简写为 wsl -l -v,非常常用!wsl --unregister ubuntu // 移除某个子系统

先执行以下命令

wsl --set-default-version 2

通过查询命令可以看到,已经开启了 wsl2 功能


安装 DockerDesktop 应用服务

可以直接在链接[1]主页进行下载。

直接就开始解压了。


直接就安装完成了

桌面有快捷方式,直接双击打开即可。

我直接就接受了

默认开始启动(启动的时候,如果有报错,可以复制报错信息到网上搜一下,大部分都是没有配置好导致的,也可以从头到尾再来一遍)

现在已经安装OK了。

现在这个版本还有引导页

step1

step2

step3

step4

至此,DockerDesktop Windows版,已经安装完毕了。


配置镜像地址

大部分用户都是中国的用户,所以,还是需要更改一下镜像地址为国内,这样,下载镜像速度会快许多,当然,如果有科技,那另说。

修改配置内容为 下面的内容即可

{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buildkit": true},"registry-mirrors": ["https://hub-mirror.c.163.com","https://1rlt72n0.mirror.aliyuncs.com","https://registry.docker-cn.com","https://mirror.ccs.tencentyun.com","https://mirror.baidubce.com"]
}

用docker 运行起来一个应用服务

我这边就以Mysql为例,运行一个Mysql服务,账号root,密码123456。

docker run -p 3306:3306 --name mysql -v /d/dockerConfig/mysql/data:/var/lib/mysql -v /d/dockerConfig/mysql/config:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql

此命令会把存储的数据映射到本地D盘,防止数据丢失,因为运行在docker里,docker没了,数据就没了。

直接控制台执行即可.

没有镜像,它会直接从hub.docker.com上拉取,然后,运行起来,如果本地有镜像,就会直接用本地的

红线的那一行是容器ID,至此服务已经运行起来了,我们也可以通过 DockerDesktop 应用查看.

可以看到容器里已经有了mysql服务,

这个容器界面可以对容器进行,删除,暂停,启动,以及进入到容器内部的命令控制台里。

当然,直接选中此容器,就会查看容器运行的日志信息。


控制台信息

日志信息

端口映射,网络,等信息

查看当前应用的状态等信息

镜像里也有mysql镜像了,下一次使用,就不用重新下载镜像了


通过Dbeaver 连接 Mysql

可以连接上,还是上次我存储的数据,数据也米有丢失。


总结

一直想写个关于Docker相关的文,这次写的比较完善了,如果捋不顺,那就按照官方的来。

Docker的潜力,不仅仅在于开发侧,我个人认为在应用侧也有它的潜力,毕竟,现在Win10++系统也不少,那么,每个系统如果都有docker,那完全可以玩着游戏,玩docker,甚至可以windows端docker 分布式和集群的支持。让一个算力复杂的任务,分配给多个闲散客户端主机,成为可能。


一键三连呦!,感谢大佬的支持,您的支持就是我的动力!


参考资料地址

[1] https://www.docker.com/

[2] https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package


推荐阅读
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • VSCode快速查看函数定义和代码追踪方法详解
    本文详细介绍了在VSCode中快速查看函数定义和代码追踪的方法,包括跳转到定义位置的三种方式和返回跳转前的位置的快捷键。同时,还介绍了代码追踪插件的使用以及对符号跳转的不足之处。文章指出,直接跳转到定义和实现的位置对于程序员来说非常重要,但需要语言本身的支持。以TypeScript为例,按下F12即可跳转到函数的定义处。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本文记录了作者对x265开源代码的实现与框架进行学习与探索的过程,包括x265的下载地址与参考资料,以及在Win7 32 bit PC、VS2010平台上的安装与配置步骤。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
author-avatar
Aero-Maxwell
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有