Docker 快速入门体验

Docker 是什么?

Docker 是一个开源项目,它能够自动化部署应用程序,通过所谓的容器来实现。这些容器允许开发者将自己的应用以及依赖打包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 机器上也可以实现虚拟化。Docker 更改了软件容器的虚拟化技术,使开发者可以快速地使用 Docker 容器来运行和测试部署到生产环境中的工作负载。

Docker的主要概念

在Docker 中的主要概念包括:

  • Container(容器): Docker 可以将应用及其依赖打包到一个可移植的容器中,这个容器可以在几乎任何机器上运行。

  • Image(镜像): Docker 可以使用镜像(images)来创建 Docker 容器。镜像是可执行的软件包,包含了运行某个应用所需的所有内容,包括代码、运行时环境、库、环境变量和配置文件。

  • Dockerfile: Dockerfile 是一种文本文件,它包含了用户可以调用来创建 Docker 镜像的指令。

  • Docker Hub: Docker Hub 是一个托管 Docker 镜像的服务。用户可以在 Docker Hub 中创建自己的镜像,并可以使用他人的镜像。

Docker 在进行系统级的虚拟化时提供了多种优势,如更高效的资源利用、更快的启动时间、一致的运行环境和更好的应用隔离等,使得 Docker 在微服务架构、持续集成和持续部署等场景下得到了广泛的应用。

Docker的下载与安装

Docker 的官方站点是 :https://www.docker.com/ ,在该站点可以下载不同操作系统版本的Docker。

Docker提供了多种版本,个人版本的使用是免费的,专业、团队和企业的版本是按月收取费用的,不过功能和支持也更多,详细参考下图:
在这里插入图片描述

简单起见,本篇以Windows下安装和使用Docker为例进行介绍。 可以到https://www.docker.com/products/docker-desktop 下载Docker Desktop, 下载之前需要先注册账号, 也可以通过如下地址直接下载:
https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe?_gl=1krkrmx_gaMjEyOTU5NzE2My4xNjkxNzMxNjg1_ga_XJWPQMJYHQ*MTY5NzQ0MjkwOS41LjEuMTY5NzQ0MzcxOS41Ni4wLjA.

安装 Docker Desktop:

运行下载的 Docker Desktop 安装程序,并按照提示进行安装,下面的画面直接默认就可以了
在这里插入图片描述

安装完成的界面如下:
在这里插入图片描述

启动 Docker Desktop:

安装完成后,找到 Docker Desktop 应用程序并启动, 启动会花费一些时间,启动的过程如下图:
在这里插入图片描述

启动成功后的画面如下:
在这里插入图片描述

在Windows启动可能会报 WSL kernel version too low 的错误, 解决方法如下章节介绍。

无GUI界面如何验证 Docker 是否正常安装

如果是在Linux等没有GUI界面安装,可以使用如下方式验证是否安装和启动成功

打开命令行输入以下命令检查 Docker 是否正常运行:

docker --version

如果返回 Docker 的版本信息,说明 Docker 已正常安装且正在运行。
在这里插入图片描述

运行你的第一个 Docker 容器:

在命令行中执行以下命令,运行一个"Hello, World!"程序的 Docker 容器:

docker run hello-world

这条命令会下载一个简单的 Docker 镜像,并运行一个容器,然后在终端中输出一条"Hello from Docker!"的消息,然后退出。如果你看到了这条消息,恭喜你,你已经成功地运行了你的第一个 Docker 容器!
在这里插入图片描述

Docker Desktop 图形化用户界面

Docker Desktop 提供了一个图形化的用户界面,相比命令行,更加简单、直观。可以通过它来管理 Docker 引擎、镜像、容器、容器网络以及卷(Volume)。Docker Desktop启动后的界面如下:
在这里插入图片描述

WSL kernel version too low 问题及解决

在Windows启动Docker Desktop 可能会遇到如下问题:
在这里插入图片描述

该错误通常意味着你的 WSL (Windows Subsystem for Linux) 内核版本过低,无法运行某些程序或命令。可以通过升级你的 WSL 内核版本来解决这个问题:

  1. 下载最新的 WSL 2 Linux 内核更新包:

访问 Microsoft 的 WSL 2 Linux 内核更新页 (https://aka.ms/wsl2kernel) 并下载最新的 WSL 2 Linux 内核更新包。
下载地址: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

  1. 安装更新包:

运行刚刚下载的更新包,与正常的软件安装过程相同。

  1. 设置 WSL 默认版本为 2:

打开 PowerShell(建议使用管理员权限),运行以下命令:

wsl --set-default-version 2

这将使新安装的 Linux 发行版使用 WSL 2,而不是 WSL 1。

重新启动你的 WSL(或者你的计算机)后,错误应该已经得到了解决。

如果系统版本低于 Windows 10 2004 版本(Build 19041),可能需要先更新Windows 系统版本。可以通过 “设置” > “更新和安全” > “Windows 更新” 来检查和安装 Windows 更新。如果系统不支持 WSL 2,也可以选择继续使用 WSL 1,但可能无法使用某些功能或软件。

容器 (container)快速体验

Docker Desktop 安装完成之后, 默认提供了一个容器的示例,在Container 标签也中有一个welcome-to-docker
在这里插入图片描述

这个容器创建一个运行在8088端口的Web应用程序,点击运行之后就可以在浏览器中看到运行后的效果。
在这里插入图片描述

Docker 是一个隔离的环境,这个环境包括了一些操作系统等的文件, 点击welcome-to-docker 之后进入Files 的标签页, 可以看到文件:
在这里插入图片描述

点击停止、启动、重启或是删除按钮操作创建的容器
在这里插入图片描述

Docker 的作用

Docker 是一种容器技术,它可以使开发者将应用及其所有依赖打包到一个轻量级、独立的可执行环境中,这个环境可以无视硬件环境在任何主流操作系统中运行。Docker 的主要作用包括但不限于以下几点:

  • 环境一致性: Docker 可以消除“在我机器上可用”这种问题。无论你是在自己的机器上进行开发,还是在测试服务器上进行测试,或是在生产环境中部署应用程序,Docker 都可以确保运行环境的一致性。

  • 快速、可复用的环境: 使用 Docker,你可以在几秒钟内启动或停止一个应用程序环境。也可以方便地使用 Docker 镜像和 Dockerfile 来共享和复用环境。

  • 微服务架构支持: Docker 以轻量级的方式支持微服务架构,可以为每个微服务都建立一个独立的 Docker 容器,每个容器都运行一个应用,并且有自己独立的运行环境。

  • 持续集成/持续部署 (CI/CD):Docker 可以和各种 CI/CD 工具很好地集成,帮助你实现自动化的测试和部署。

  • 可扩容性与集群管理: Docker 同样也支持容器的扩容及群集管理,你可以使用像是 Kubernetes 这样的工具在多个主机上启动和管理 Docker。这使得在大规模的生产环境中使用 Docker 成为可能。

综上所述,Docker 的主要作用是允许开发者和运维人员在一个隔离的环境中,快速且一致地开发、打包、分发和运行应用程序。通过使用 Docker,团队可以更容易地进行协作,从而缩短了从开发到部署的周期。



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

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

相关文章

从Flink的Kafka消费者看算子联合列表状态的使用

背景 算子的联合列表状态是平时使用的比较少的一种状态,本文通过kafka的消费者实现来看一下怎么使用算子列表联合状态 算子联合列表状态 首先我们看一下算子联合列表状态的在进行故障恢复或者从某个保存点进行扩缩容启动应用时状态的恢复情况 算子联合列表状态主…

华为数通方向HCIP-DataCom H12-831题库(单选题:261-280)

第261题 某网络通过部署1S-IS实现全网与通,若在一台IS-IS路由器的某接口下配置命令isis timer holding multiplier 5 level-2,则以下关于该场景的描述,正确的是哪一项? A、该接口Level-2邻居保持时间为5秒 B、该接口Level-1邻居保持时间为30秒 C、该接口为点对点链路接口 …

2022年全网最全最细最流行的自动化测试工具有哪些?

一:前言 随着测试工程师技能和工资待遇的提升,甚至有一部分的开发人员开始转入测试岗位,跨入自动化领域的测试攻城狮越来越多。在自动化测试领域,自动化工具肯定占据了核心的位置。 本文总结了常用的测试自动化工具和框架&#x…

Spring framework Day 23:容器事件

前言 容器事件是 Spring Framework 中的一个重要概念,它提供了一种机制,使我们能够更好地了解和响应 Spring 容器中发生的各种事件。通过容器事件,我们可以在特定的时间点监听和处理容器中的各种状态变化、操作和事件触发,以实现…

超实用!了解github的热门趋势和star排行是必须得!

在当今的技术领域中,GitHub 已经成为了开发者们分享和探索代码的重要平台。作为全球最大的开源社区,GitHub上托管了数以亿计的项目,其中包括了各种各样的技术栈和应用。对于开发者来说,了解GitHub上的热门趋势和star排行是非常重要…

Unity3D 基础——使用 Mathf.SmoothDamp 函数制作相机的缓冲跟踪效果

使用 Mathf.SmoothDamp 函数制作相机的缓冲跟踪效果,让物体的移动不是那么僵硬,而是做减速的缓冲效果。将以下的脚本绑定在相机上,然后设定好 target 目标对象,即可看到相机的缓动效果。通过设定 smoothTime 的值,可以…

卷麻了,00后测试用例写的比我还好,简直无地自容......

经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对编写测试用例感到困扰?例如: 如何编写测试用例? 作为一个测试新人,刚开始接触测试,对于怎么写测试用例很是头疼,无法…

OpenCV模板匹配实现银行卡数字识别

目录 1,项目流程 2,代码流程解读 2.1 导入工具包 2.2 设置参数 2.3 指定信用卡类型 2.4 展示图像 ​编辑 2.5 读取一个模板图像 2.6 转化为灰度图--------->再转化为二值图像 2.7 计算轮廓 ​编辑 2.8 导入我们要识别的图像&…

JavaSE入门---认识Java数组

文章目录 一. 数组的基本概念1.1 为什么要使用数组?1.2 什么是数组?1.3 数组的使用 二. 数组是引用类型三. 数组的应用场景四. 数组中的常用方法五. 二维数组 一. 数组的基本概念 1.1 为什么要使用数组? 想象这样的一个场景:期末…

【解决】运行vue项目,启动报错 in ./node_modules/@intlify/core-base/dist/core-base.cjs

我的处理方式: 一开始查了好多方法,删除node_modules,重新安装,切换node版本等,但是发现并没有用 之后来发现是安装依赖包的时候有些包安装失败导致的,只要有针对性的重新安装依赖就可以了 例如: in ./n…

会议OA小程序【首页布局】

目录 一. Flex布局介绍 1.1 什么是Flex布局 1.2 基本概念 1.3 Flex属性 二. 会议OA首页轮播图的实现 配置 Mock工具 swiper 效果展示 三. 会议OA首页会议信息布局 index.js index.wxml index.wxss 首页整体效果展示 一. Flex布局介绍 布局的传统解决方案&#x…

服务器中了locked勒索病毒怎么办,勒索病毒解密,数据恢复

最近一段时间内,相信很多使用金蝶或用友的办公软件的企业,有很多都经历了locked勒索病毒的攻击,导致企业服务器被加密无法正常使用,严重影响了企业的正常工作。通过云天数据恢复中心的解密恢复发现,在今年locked勒索病…