快速学习Docker基础知识!

2025-05-24

快速学习Docker基础知识!

本文最初发表于https://jayachandrika.com

在本文中,我们将探讨:

您是否曾经构建过一个应用程序,但它无法在所有平台上运行?或者您是否厌倦了为应用程序中的每个服务/组件安装不同的依赖项和库?您是否为了部署、扩展和管理一个简单的应用程序而费尽周折?

那么 DOCKER 正在等你!!!

Docker:这到底是什么?

Docker 是一套平台即服务产品,它使用操作系统级虚拟化技术以称为容器的包形式交付软件。

……这是 GOOGLE 的定义!)

简单来说,它只是一个盒子

想象,

  1. 在打印机盒里,我们放入一张纸,就可以打印文字或颜色。

    那么它是如何工作的呢?也许所有颜色和所需的材料都已经存在于打印机中了。
    替代文本

  2. 想象一下洗车,汽车被送去洗车,经过许多过程,如清洗、清洁等,最后我们得到一辆闪亮干净的汽车(或不太生锈的汽车)。

替代文本

因此,在这种情况下,docker 就像是一个打印机盒或洗车装置,基本上就是接收一个input并给予一个output

它基本上是一个盒子,里面有一个应用程序及其相关的依赖项、库等。

但为什么是docker?

替代文本

想象一下,我们正在建造一个动物园,我们将所有动物,如猴子、狮子和鳄鱼放在一个大公园里,只有一种食物一种环境,比如说,陆地。

猴子吃的香蕉狮子和鳄鱼吃不了,狮子的肉猴子也吃不了。猴子需要树木,鳄鱼需要环境中的水域。

类似地,如果我们正在构建一个具有数据库和框架等服务的应用程序,数据库(cassandra,postgresql,mongodb等)使用的库和依赖项(食物)可能与框架(strapi,nodejs express等)不兼容/不适合。

例如:MongoDb 版本 4.26 可能与 NodeJs 版本 4.16.4 不兼容/不适用

为了简化应用程序的开发、运行和维护,并使其能够在所有平台上运行,我们推出了 Docker。动物园示例中的问题可以通过为每只动物提供单独的边界、所需的食物和环境来解决。

容器

替代文本

在 Docker 中,我们有一个称为容器的独立边界。我们将每个服务及其所需的所有库和依赖项放在一个容器中。

容器是一个完全隔离的环境,有自己的进程、网络接口和自己的挂载。

等等,是不是很眼熟?没错,你猜对了,它们让我们想起了虚拟机。如果它和虚拟机很像,那我们到底为什么需要使用容器呢?

嗯,每个虚拟机都有一个单独的操作系统以及库、依赖项和应用程序,这增加了过载和利用率,使得在小型 PC 中操作它变得困难(尽管我们可能不会在那里使用它)。

容器共享相同的操作系统,但负载和利用率远低于虚拟机。因此,容器是应用程序开发、部署和管理的首选。

替代文本

图片

这些是现成的服务模板,例如 MongoDb、NodeJs 等,可在容器中运行。我们可以使用 docker.io 上的现有镜像,也可以创建自己的镜像。

创建服务的镜像有助于将其交付部署。之后,只需运行一个简单的命令即可启动并运行服务器。我们无需担心创建环境、安装依赖项等其他操作。

魔法命令

是时候吹出一些仙女像素粉尘并施展一些魔法了!

让我们开始使用运行命令在容器中运行图像。

在容器中运行 redis 镜像

docker run redis

替代文本

列出版本详细信息

docker version

替代文本

列出正在运行的容器

docker ps

替代文本

列出正在运行和未运行的容器

docker ps -a

替代文本

删除容器

docker rm [container ID]

替代文本

注意:要删除容器,请确保先使用停止命令将其停止。

列出图像

docker images

替代文本

删除图像

docker rmi [image_name]

替代文本

只下载镜像但不在容器中运行

docker pull [image_name]

替代文本

非常感谢你阅读我的内容。更多类似的内容即将在本博客发布,敬请期待。

本文最初发表于https://jayachandrika.com

文章来源:https://dev.to/chandrika56/learn-docker-basics-quickly-3f7f
PREV
我使用纯 HTML、CSS 和 JavaScript 创建了一个响应式作品集网站
NEXT
每个 Web 开发人员都应该知道的有用网站。