Docker 快速入门体验

news2024/10/12 20:22:41

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.coloradmin.cn/o/1108713.html

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

相关文章

Linux系统中配置系统

在Linux系统中配置系统设置->网络设置代理的详细教程如下: 首先,确保您已经安装了NetworkManager和nmtui。在终端中输入以下命令: sudo apt-get update sudo apt-get install network-manager nmtui 打开系统设置。在桌面上点击“设置”…

文件和命令的查找与处理

1.命令查找 which which 接命令 2.文件查找 find 按文件名字查找 准确查找 find / -name "hosts" 粗略查找 find / -name "ho*ts" 扩展名查找 find / -name "*.txt" 按文件类型查找 find / -type f 文件查找 find / -ty…

哈夫曼树实现哈夫曼编码(C++)

题目要求:根据哈夫曼编码的原理,编写一个程序,在用户输入结点权值的基础上求赫夫曼编码,并能把给定的编码进行译码。 (1)初始化:从键盘输入一字符串(或读入一文件)&…

【微服务】spring webflux使用详解

目录 一、webflux介绍 1.1 什么是webflux 1.2 什么是响应式编程 1.3 webflux特点 二、Java9中响应式编程 2.1 定义事件流源 2.2 实现订阅者 三、Spring Webflux介绍 四、Reactor 介绍 五、Reactor 常用API操作 5.1 Flux 创建流操作API 5.2 Flux响应流的订阅 5.3 Fl…

PHP WAP餐厅点餐系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP餐厅点餐系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 PHP WAP餐厅点餐系统 代码 https://download.csdn.net/download/qq_41221322/88440001 二、…

Kubeadm部署k8s集群 kuboard

目录 主机准备 主机配置 修改主机名(三个节点分别执行) 配置hosts(所有节点) 关闭防火墙、selinux、swap、dnsmasq(所有节点) 安装依赖包(所有节点) 系统参数设置(所有节点) 时间同步(所有节点) 配…

【密码学】第三章、分组密码

DES、IDEA、AES、SM4 1、分组密码定义(按照五个组成部分答) 密钥空间:属于对称加密算法kekd明密文空间:将明文划分为m比特的组,每一块依次进行加密加解密算法:由key决定一个明文到密文的可逆映射 2、发展…

C语言入门-1.1 C语言概述

想要学好一门计算机编程语言,就和谈一个女朋友是一样的,需要对其深入了解。 1、计算机语言 (1)什么是计算机语言? 顾名思义,就是计算机之间交流的语言,就和人一样,咱们都是使用普通…

中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例

中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例 中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例。 软件功能: 1、系统设置:参数设定,账号及权限设置,系统初始化&a…

PHP的四层架构

PHP的4层架构是一种软件设计模式,用于将一个PHP应用程序划分为不同的层次,以实现解耦、可扩展和易于维护的代码结构。这个架构通常由以下四个层次组成: 1、 表现层(Presentation Layer): 表现层是与用户直…

动态规划解股票类型

文章目录 单只股票买卖多次买卖单只股票最多两次买卖股票最多买k次含冷静期含手续费 单只股票买卖 买卖股票的最佳时机 关键思路:找到一个值,他与之后的最大值之差最大。 用minprice记录最小的值,用maxprofit记录最大的收益。 想清楚一个点…

麒麟kylinOS 2303制作自定义免交互安装镜像

原文链接:麒麟kylinOS 2303制作自定义免交互安装镜像 hello,大家好啊,今天给大家带来一篇麒麟kylinOS 2303制作自定义免交互ISO安装镜像的文章,内容相对来说比较简单,测试安装了一个360浏览器软件,后续复杂…

c语言练习93:环形链表的约瑟夫问题

环形链表的约瑟夫问题 环形链表的约瑟夫问题_牛客题霸_牛客网 描述 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号是…

【CesiumforUnreal插件】UE5 快速构建Cesium场景 快速入门!!!

目录 0 引言1 快速入门1.1 准备1.2 安装Cesium for Unreal插件并创建一个项目1.3 准备关卡并添加地形和纹理1.4 添加3D建筑到场景中1.5 探索场景 🙋‍♂️ 作者:海码007📜 专栏:CesiumforUnreal专栏💥 标题&#xff1a…

论坛介绍|COSCon'23开源商业(V)

众多开源爱好者翘首期盼的开源盛会:第八届中国开源年会(COSCon23)将于 10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是:“开源:川流不息、山海相映”!各位新老朋友们,欢迎到成都&a…

C++数据结构X篇_17_C++实现二叉树的非递归遍历(企业链表实现栈,利用栈的先进后出特点实现二叉树的非递归遍历)

本篇参考C实现二叉树的非递归遍历进行整合介绍。 在C数据结构X篇_14_二叉树的递归遍历(先序遍历、中序遍历、后续遍历方法介绍;举例;代码实现)中我们实现二叉树通过递归遍历实现了先序、中序与后续遍历,那么如何通过非…

Confluence 自定义博文列表

1. 概述 Confluence 自有博文列表无法实现列表自定义功能,实现该需求可采用页面中引用博文宏标签控制的方式 2. 实现方式 功能入口: Confluence →指定空间→创建页面 功能说明: (1)页面引用博文宏 (…

标准化助推开源发展丨九州未来参编开源领域4项团体标准正式发布

在数字中国及数字经济时代的大背景下,开源逐步成为各行业数字化发展的关键模式。在开源产业迅速发展的同时,如何评估、规范开源治理成为行业极度关注的问题。 近日,中电标2023年第27号团体标准公告正式发布,九州未来作为起草单位…

云表:只需3步,让你搞懂低代码和传统开发有什么区别

自2014年Forrester明确提出低代码(Low-Code)概念以来,这个领域已经引起了广泛的关注,并逐渐受到越来越多的重视。近年来,低代码因为其低开发门槛、易用性等优点,赢得了众多投资研究机构和企业用户的青睐&am…

【Vue】终结v-model

v-model修饰符 .lazy 默认 v-model 是输入框内容每次改变都会更新数据 加了 .lazy 后,只有在输入框失去焦点时才会更新数据 例如输入用户名,只有离开输入框时才保存用户名 // 输入的时候不会立即加载&#xff0c;等失去焦点时会加载 <input v-model.lazy"msg"…