快速学习Docker基础知识!
本文最初发表于https://jayachandrika.com
在本文中,我们将探讨:
您是否曾经构建过一个应用程序,但它无法在所有平台上运行?或者您是否厌倦了为应用程序中的每个服务/组件安装不同的依赖项和库?您是否为了部署、扩展和管理一个简单的应用程序而费尽周折?
那么 DOCKER 正在等你!!!
Docker:这到底是什么?
Docker 是一套平台即服务产品,它使用操作系统级虚拟化技术以称为容器的包形式交付软件。
(嗯……这是 GOOGLE 的定义!)
简单来说,它只是一个盒子!
想象,
-
在打印机盒里,我们放入一张纸,就可以打印文字或颜色。
那么它是如何工作的呢?也许所有颜色和所需的材料都已经存在于打印机中了。 -
想象一下洗车,汽车被送去洗车,经过许多过程,如清洗、清洁等,最后我们得到一辆闪亮干净的汽车(或不太生锈的汽车)。
因此,在这种情况下,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://dev.to/chandrika56/learn-docker-basics-quickly-3f7f本文最初发表于https://jayachandrika.com