微服务实战系列之玩转Docker(二)

前言

上一篇,博主对Docker的背景、理念和实现路径进行了简单的阐述。作为云原生技术的核心之一,轻量级的容器Docker,受到业界追捧。因为它抛弃了笨重的OS,也不带Data,可以说,能够留下来的都是打仗的“精锐”

趁热打铁,续写新篇,今天继续“玩转”Docker。既然提到了“玩”,那就愉快的玩起来吧。怎么玩,且听博主分解。
在这里插入图片描述


工欲善其事必先利其器,咱们先选择一个简单的“器”玩起来,在win下操作docker,获得一些使用体验。

Docker Desktop入门

Docker Desktop是可安装在windows运行的docker桌面操作应用。它基于windows的Hyper-V服务并通过WSL 2在windows上创建一个Linux子系统实现运行docker的目的。

一、物质基础

如果要运行DockerDesktop,则离不开的两个助手,即Hyper-V和WSL 2。先看看这两是干什么的。

1. Hyper-V

Hyper-V 是 Microsoft 的硬件虚拟化产品。 它用于创建并运行计算机的软件版本,称为“虚拟机”。 每个虚拟机都像一台完整的计算机一样运行操作系统和程序。 如果需要计算资源,虚拟机可提供更大的灵活性、帮助节省时间和金钱,并且与在物理硬件上运行一个操作系统相比,虚拟机可以更高效地使用硬件。
Hyper-V 在自己的隔离空间中运行每个虚拟机,这意味着可以同时在同一硬件上运行多个虚拟机。 你可能希望这样做,以避免崩溃影响其他工作负载等问题,或者为不同的人员、组或服务提供对不同系统的访问权限。

简单讲,就是一个支持硬件虚拟化的产品,通过它可提供docker所需的必要环境。如果需要了解更多,可转向 Hyper-V官方文档。
那么在自己的window上如何安装? 简单,直接开启Hyper-V服务即可。

Step1:打开控制面板—>程序

在这里插入图片描述

Step2:开启Hyper-V服务

在这里插入图片描述
打√,重启,本节工作完毕。

2. WSL 2

适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验
安装 Linux 发行版时,WSL 2 是默认发行版类型。 WSL 2 使用虚拟化技术在轻量级实用工具虚拟机 (VM) 中运行 Linux 内核。 Linux 发行版作为独立的容器在 WSL 2 托管 VM 内运行。 通过 WSL 2 运行的 Linux 发行版将共享同一网络命名空间、设备树(而非 /dev/pts)、CPU/内核/内存/交换空间、/init 二进制文件,但有自己的 PID 命名空间、装载命名空间、用户命名空间、Cgroup 命名空间和 init 进程。

也就是你有了虚拟环境,还需要支持在window下使用,必须依赖WSL 2 实现无缝对接。如需了解更多, 可转向:什么是适用于 Linux 的 Windows 子系统?
我们可以下载最新版wsl_update_x64.msi,安装即可。

二、闪亮登场

完成了物质基础的准备后,我们可以隆重邀请Docker Desktop,亮个相了。

1. 下载

官网下载太困难,博主已下载了Docker-win.exe并上传了资源,请转向这里 docker-win。

在这里插入图片描述

2. 安装

比较简单,没有特殊要求,一步一步执行即可。重启后完成以下几步:

Step1:验证是否安装成功

打开cmd,输入docker -v,回车后如出现版本号,则成功。
在这里插入图片描述
安装成功后,需要完成一些setting。

Step2:勾选WSL2

在这里插入图片描述

Step3:配置docker文件

在这里插入图片描述
这里如无特殊要求,关注镜像来源,一般选择国内的镜像。

3. 体验
Step1:Get一个镜像

执行如下命令:

docker run -d -p 80:80 docker/getting-started

我们就可以体验人生第一个docker镜像了。

Step2:启动镜像

获得镜像后,可以通过desktop对它进行各种操作,优先RUN一下吧。
在这里插入图片描述

Step3:体验第一个容器

RUN后,我们可以看到第一个Container诞生了。当然如资源自由,你可以多次RUN。
在这里插入图片描述

Step4:访问应用程序

通过Container/Apps界面,我们可以直接访问应用程序。示例:http://localhost/tutorial/。
在这里插入图片描述
好了,至此大功告成,一个desktop,一个镜像,一个容器就被你高效的创建了。


结语

Docker Desktop是一个简洁、高效、易用的桌面工具。此刻,Window与Linux进行了“握手”。可见,合作带来双赢,在IT领域的体现的非常显著。

欢迎各位盆友留言指导,学会学懂是我们的必修课。


精彩回顾

  • 微服务实战系列之玩转Docker(一)
  • 微服务实战系列之云原生
  • 微服务实战系列之Filter
  • 微服务实战系列之API加密
  • 微服务实战系列之Dubbo(下)
  • 微服务实战系列之Dubbo(上)
  • 微服务实战系列之ZooKeeper(实践篇)
  • 微服务实战系列之ZooKeeper(下)
  • 微服务实战系列之ZooKeeper(中)
  • 微服务实战系列之ZooKeeper(上)
  • 微服务实战系列之MQ
  • 微服务实战系列之通信
  • 微服务实战系列之J2Cache
  • 微服务实战系列之Cache(技巧篇)
  • 微服务实战系列之MemCache
  • 微服务实战系列之EhCache
  • 微服务实战系列之Redis
  • 微服务实战系列之Cache
  • 微服务实战系列之Nginx(技巧篇)
  • 微服务实战系列之Nginx
  • 微服务实战系列之Feign
  • 微服务实战系列之Sentinel
  • 微服务实战系列之Token
  • 微服务实战系列之Nacos
  • 微服务实战系列之Gateway
  • 微服务实战系列之加密RSA
  • 微服务实战系列之签名Sign

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/46791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 前置知识

1. Vue3 简介 2020年9月18日,Vue.js发布版3.8版本,代号:one Piece(海贼王)经历了:4800次提交、40个RFC、600次PR、300贡献者官方发版地址:Release v3.0.0 One Piecevuejs/,core截止2023年10月,最新的公开版…

LRU CaChe(内存替换算法)

六、LURCache 0、LUR Cache概念 LRU是Least Recently Used的缩写,意思是最近最少使用,它是一种Cache替换算法。 什么是Cache?狭义的Cache指的是位于CPU和主存间的快速RAM,通常它不像系统主存那样使用DRAM技术,而使用昂…

打开磁盘格式为NTFS的磁盘 ntfs磁盘无法打开 移动硬盘出现ntfs怎么打不开了的原因和解决方案

在日常的工作和生活中,移动硬盘作为我们存储和传输数据的重要工具,发挥着不可替代的作用。然而,有时候我们会遇到这样一个问题:移动硬盘突然显示NTFS格式,并且无法正常打开。面对这种情况,我们往往感到束手…

【系统架构设计师】十一、系统架构设计(层次架构风格|MVC|面向服务的架构风格|ESB)

目录 五、层次架构风格 5.1 两层C/S架构 5.2 三层C/S架构 5.3 三层B/S架构 5.4 MVC架构 5.5 MVP架构 5.6 MVVM架构 六、面向服务的架构风格 6.1 SOA特征 6.2 Web Service 6.2.1 关键技术 6.2.2 WEB Service 6.3 企业服务总线ESB 相关推荐 历年真题练习 五、层次…

【MAUI】生命周期

.NET Multi-platform App UI (.NET MAUI) 应用通常有四种执行状态:“未运行”、“运行中”、“已停用”和“已停止”。 当应用从未运行状态转换为运行状态、从运行状态转换为已停用状态、从已停用状态转换为已停止状态、从已停止状态转换为运行状态,以及…

new mars3d.graphic.FixedRoute({的position长度超过一百条浏览器会卡死的解决方案

问题场景描述: FixedRoute的position数据已经很精细时,会导致卡死的问题 解决方案: 1. 数据已经很精细时,可以不用autoSurfaceHeight来计算,如果非要用,可以加个minDistance: 200参数。 fixedRoute.auto…

ChatGPT 深度解析:技术驱动的智能对话

在当今科技飞速发展的时代,ChatGPT 无疑成为了最耀眼的明星之一。它以其令人惊叹的智能对话能力,引发了全球范围内的广泛关注和热议。 ChatGPT 背后的技术堪称精妙绝伦。它基于深度学习算法,通过对海量数据的学习和分析,从而能够理…

BasicSR项目(通用图像超分、修复、增强工具库)介绍

项目地址:https://github.com/XPixelGroup/BasicSR 文档地址:https://github.com/XPixelGroup/BasicSR-docs/releases BasicSR 是一个开源项目,旨在提供一个方便易用的图像、视频的超分、复原、增强的工具箱。BasicSR 代码库从2018年4月20日…

【Memcached】Memcached的工作原理

目录 ​编辑 第2章:Memcached工作原理 2.1 数据存储与访问 2.2 分布式架构 2.3 数据过期机制 第2章:Memcached工作原理 2.1 数据存储与访问 Memcached是一种键值存储系统,其中数据以键值对的形式存储。键是用于定位数据的唯一标识符&am…

libyaml库的交叉编译

目录 1.Ubuntu环境中安装libyaml库 2.交叉编译 3.success 1.Ubuntu环境中安装libyaml库 官方地址:https://pyyaml.org/wiki/LibYAML 下载路径:http://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz 2.交叉编译 官方的下载路径为/usr/local下&am…

【unity实战】使用unity制作一个红点系统

前言 注意,本文是本人的学习笔记记录,这里先记录基本的代码,后面用到了再回来进行实现和整理 素材 https://assetstore.unity.com/packages/2d/gui/icons/2d-simple-ui-pack-218050 框架: RedPointSystem.cs using System.…

PHP全功能微信投票迷你平台系统小程序源码

🔥让决策变得超简单!🎉 🚀【一键创建,秒速启动】 嘿小伙伴们,你还在为组织投票而手忙脚乱吗?来试试这款全功能投票迷你微信小程序吧!只需轻轻一点,无论是班级选举、社团…

【postgresql】pg_dump备份数据库

pg_dump 介绍 pg_dump 是一个用于备份 PostgreSQL 数据库的实用工具。它可以将数据库的内容导出为一个 SQL 脚本文件或其他格式的文件,以便在需要时进行恢复或迁移。 基本用法 pg_dump [选项] [数据库名] 命令选项 -h 或 --host:指定数据库服务器的主…

2024年大数据高频面试题(上篇)

文章目录 HDFS读流程和写流程HDFS读数据流程NameNode和Secondary NameNode工作机制FsimageEdits文件Seen_txidnamenode工作机制HA NameNode如何工作ZKFCHealthMonitorActiveStandbyElectorJouranlNode集群DataNode工作机制DataNode数据损坏压缩MapReduce工作流程MapTask工作流R…

Visual Studio远程调试工具

路径:Visual Studio安装路径/Common7/IDE/Remote Debugger/平台/msvsmon.exe。 平台有x86、x64,x64即可调试x86进程也可调试x64进程。 将平台路径下的所有文件拷贝至其他PC,运行msvsmon.exe。 工具栏选择“工具(T)”…

Ubuntu18.04安装ROS

1.添加ROS软件源 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.listcurl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc输入指令:curl -s https:…

Python中EMD的安装教程

第一步:首先安装两个包 pip install pyemd pip install EMD-signal第二步:然后,进行改名 安装完之后,找到包所在的位置,然后要将原来pyemd的文件夹名称改为PyEMD:

cleanshot Mac 上的截图工具

笔者闲来无事,最近在找一些mac上好用的工具其中一款就是cleanShot。为什么不用原有的mac自带的呢。因为相对来说编辑功能不算全面,不支持长截图。那有没有一款软件支持关于截图的好用工具呢。 所以笔者找了这款。安装包是直接安装就可使用的。请大家点赞…

Golang | Leetcode Golang题解之第237题删除链表中的节点

题目: 题解: func deleteNode(node *ListNode) {node.Val node.Next.Valnode.Next node.Next.Next }

Python中的UnboundLocalError是什么错误?如何解决?

如果代码报错UnboundLocalError, 大概率犯了以下错误: money 10000 # 当前存款def add_money(value):money valueif __name__ __main__:print(当前存款:, money)add_money(1000)print(当前存款:, money)其中,变量money表示当前存款;函数…