Docker 初学者指南

2025-05-25

Docker 初学者指南

“一次编写,随处运行”
——Sun Microsystems 关于 Java,1995 年
“一次构建,随处运行”
——Docker关于任何软件,2013 年

什么是 Docker?

Docker 是一组项目、工具和软件,它们共同形成一个平台或生态系统,围绕创建一个名为“Image”的单元并在任何
支持 docker 的系统上将该 Image 作为“Container”运行。

镜像和容器
镜像是 Docker 世界中最重要的东西。
镜像用于创建容器。容器可以被认为是镜像的一个实例。Docker 镜像是静态的,而不是内存中的进程。它的唯一目的是运行进程。Docker
镜像只能做三件事:
● 构建镜像
● 使用镜像启动容器
● 删除镜像

镜像/正在运行的程序实例,拥有独立且独立的硬件资源,被称为容器。
由于容器是一个运行的实体,我们可以对其进行更多操作。我们可以:
● 停止容器
● 启动容器
● 在容器中运行命令
● 查看日志
● 等等。

参考面向对象编程,我们可以将图像视为一个类,将容器视为该类的一个实例,即一个对象

虚拟机 (VM) 和容器的区别:
虚拟机是在另一个操作系统上运行的操作系统实例。它负载较重,占用大量资源。而容器则以进程的形式在主机操作系统中运行。它们是一种轻量级的应用程序部署方式,无需物理虚拟机的完整基础架构。

Docker 永远是首选吗?虚拟化已经过时了吗?
答案是否定的!虚拟化并没有过时。只是在某些情况下,容器化比虚拟化更好。在组织中,确实存在一些案例,容器和虚拟机同时运行在某个微服务上。
然而,使用 Docker 确实能给我们带来一些额外的好处,例如更快的速度、更易移植、平台独立性、更高的效率以及更低的计算成本。

Docker 如何工作?

你可能还记得,Docker 允许构建、发布和运行任何软件。但在发布之前,我们需要先构建并运行。Docker 主要有两个基本概念:镜像和容器。
工作流程可以是:

  1. 使用 Docker 构建镜像
  2. 使用构建的图像来运行容器。

构建镜像
每当我们想要启动一个新的容器时,都必须先构建镜像。这类似于面向对象编程,我们需要创建一个类才能创建一个对象。

镜像可以借助Dockerfile构建。Dockerfile 是一个纯文本文件,其中包含几行配置。这些配置定义了容器的行为,即它在启动时执行的操作。下一步是构建 Dockerfile。这可以通过名为 的命令来完成docker build。最后一步是借助 命令运行构建的文件docker run

每次我们部署一个镜像,都会得到一个容器,
镜像的运行实例我们称之为容器。

除了创建自己的镜像之外,我们还可以使用命令 列出docker本地副本中的所有镜像docker images
其他一些可用于处理镜像的命令:

  • docker 运行
  • docker 默认
  • docker 发布
  • docker ps
  • docker stop
  • docker 镜像运行

我们可以共享镜像吗?我们可以在Dockerhub
上分享镜像。Dockerhub 是一个免费公共镜像的注册中心/存储库,我们可以自由下载并在本地计算机上运行。

使用注册表
使用注册表时一些方便且最常用的 docker 命令:

  • docker pull
  • docker 标签
  • docker 登录
  • docker push

我可以使用 Docker 构建应用程序吗?

使用 Docker 构建应用程序可以理解为在单个应用程序上运行不同的容器。这就像用不同的原料制作一道菜。Docker
Compose 非常方便,可以在 Docker 的帮助下构建应用程序。Docker
Compose 允许我们为所有原料(容器)编写一个配方(应用程序)。
我们无需整天敲命令,只需在配置文件(通常是 .yaml 文件)中描述设置的需求即可。有了配置文件后,我们就可以运行 Docker Compose,命令如下:
$ docker –compose up –d

我如何学习 Docker
如果您想学习 Docker,这里有一些您可能需要关注的链接和资源 :)
Dockerhub
学习 Docker

补充
-Cassandra 和 Kubernetes

文章来源:https://dev.to/noviicee/beginner-s-guide-to-docker-42co
PREV
🚀 10 本助您精通 JavaScript 的书籍 👨‍💻 参与我们的 20 件礼品赠送活动!🎉 🎊
NEXT
无需服务器即可在窗口之间共享状态