Docker 初学者教程:基础知识, Archi建筑,容器

什么是Docker?

Docker 是一个具有多种虚拟化功能的软件开发平台 Opera在同一主机上运行的系统。它有助于分离基础设施和应用程序,以便快速交付软件。与用于创建 VM(虚拟机)的 Hypervisor 不同,Docker 中的虚拟化是在系统级执行的,也称为 Docker 容器。

正如你在下图中看到的区别,Docker 容器在主机上运行 Operation 系统。这有助于提高效率和安全性。此外,我们可以在相同的基础架构上运行比虚拟机更多的容器,因为容器使用的资源更少。

Docker 与 Hypervisor 中的虚拟化
Docker 与 Hypervisor 中的虚拟化

与可以与主机硬件通信的虚拟机(例如:以太网适配器以创建更多虚拟适配器)不同,Docker 容器在主机操作系统上的隔离环境中运行。即使您的主机运行 Windows 操作系统,你可以借助 Hyper-V,它会自动创建小型虚拟机来虚拟化系统的基础映像,在本例中, Linux.

为什么要使用 Docker?

  • Docker 是一款用于虚拟化的计算机软件,用于实现多个 Opera事物系统 在同一主机上运行
  • Docker 是客户端-服务器类型的应用程序,这意味着我们有中继到服务器的客户端
  • Docker 镜像是我们的容器的“源代码”;我们使用它们来构建
  • Dockerfile 有两种类型的注册表:1)公共注册表和 2)私有注册表
  • 容器是 Docker 卷的组织单位。简单来说,镜像是模板,容器是该模板的副本。您可以拥有同一镜像的多个容器(副本)。

Docker Archi质地

现在在本 Docker 容器教程中,我们来讨论一下 Docker 中的主要组件 Archi結構:

Docker Archi质地
Docker Archi质地

Docker引擎

Docker 是客户端-服务器类型的应用程序,这意味着我们有中继到服务器的客户端。因此,Docker 守护进程称为:dockerd 是代表服务器的 Docker 引擎。docker 守护进程和客户端可以在同一台或远程主机上运行,​​它们通过命令行客户端二进制文件以及完整的 RESTful API 与守护进程交互:dockerd。

泊坞窗图像

Docker 镜像是我们容器的“源代码”;我们使用它们来构建容器。它们可以预装软件,从而加快部署速度。它们是可移植的,我们可以使用现有镜像或构建自己的镜像。

Docker 注册表

Docker 将我们构建的镜像存储在注册表中。有公共和私有注册表。Docker 公司有一个公共注册表,名为 码头工人中心,您还可以在其中私密存储图像。Docker hub 有数百万个图像,您现在就可以开始使用。

Docker容器

容器是组织单位,也是 Docker 的基本概念之一。当我们构建映像并开始运行它时,我们就是在容器中运行。使用容器类比是因为我们在容器中运行的软件具有可移植性。我们可以移动它,换句话说,“运送”软件,修改、管理、创建或删除它,销毁它,就像货船可以处理真正的集装箱一样。

简单来说,镜像是模板,容器是模板的副本。您可以拥有同一镜像的多个容器(副本)。

下面我们有一张图,它完美地代表了不同组件之间的交互以及 Docker 容器技术的工作方式。

我们有几个 docker 命令:docker pull、docker run......我们稍后会详细讨论。

如何在 Linux 上安装 Docker/Ubuntu

以下是在 Linux 上逐步安装 Docker 的过程/Ubuntu:

第一步) 要安装Docker,我们需要使用Docker团队的DEB包。

为此,需要满足一些先决条件 Ubuntu 需要软件包。

使用以下命令安装 Ubuntu 包

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*“\” 符号不是必需的,它用于换行,如果愿意,您可以在一行中编写不使用“\”的命令。

步骤2) 添加带有指纹的官方 Docker GPG 密钥。

使用以下 Docker 命令输入 GPG 密钥

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

步骤3) 接下来,添加 Docker APT 存储库。

使用以下 Docker 命令添加存储库

$ sudo add-apt-repository \ 
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 
$(lsb_release -cs) \
stable"

系统可能会提示您确认是否希望添加存储库并将 GPG 密钥自动添加到您的主机。

lsb_release 命令应该填充 Ubuntu 您的主机的发行版本。

步骤4) 添加 GPG 密钥后,

使用以下 Docker 命令更新 APT 源

$ sudo apt-get update

我们现在可以安装 Docker 包本身。

步骤5) APT 源更新后,

开始安装 Docker 软件包 Ubuntu 使用以下 Docker 命令

$ sudo apt-get install docker-ce

上述命令将安装 Docker 和其他所需的软件包。在 Docker 1.8.0 之前,软件包名称为 lxc-docker,在 Docker 1.8 和 1.13 之间,软件包名称为 docker-engine。

注意:Docker 用于 Windows 过程需要在牛奶或乳清产品在管式降膜蒸发器中浓缩至约XNUMX%固体含量之前,进行初始的热处理和巴氏杀菌步骤。 Windows 10 Pro 或 Enterprise 版本 14393,或 Windows server 2016 RTM 运行

如何使用基本 Docker 命令来使用 Docker

以下是使用基本 Docker 命令来使用 Docker 的方法:

我们安装Docker后必须运行的最基本命令就是$ docker info,正如我们之前所说。

$ sudo docker info

你应该得到类似或以下的结果

使用基本 Docker 命令来使用 Docker

正如我们在上面的 Docker 示例中看到的,我们拥有有关 Docker 容器的信息,包括正在运行、暂停或停止的容器数量以及已下载的镜像数量。因此,让我们在本 Docker 命令教程中获取第一个镜像。

$ sudo docker pull alpine

通过此命令,我们告诉 docker 下载镜像 alpine,并从公共注册表中提取默认设置的最新版本。

*alpine 是一个基于 Alpine Linux 的最小 Docker 镜像,具有完整的软件包索引,大小仅为 5 MB。

如果我们想将映像作为容器运行,我们将在本 Docker 教程指南中使用以下命令。

$ sudo docker run -i -t alpine /bin/bash

如果我们运行该命令,我们将直接发送到 alpine 的终端。 -i 标志使 STDIN 从容器保持打开状态,即使您未连接到它。此持久标准输入是交互式 shell 所需的一半。 -t 标志是另一半,它指示 Docker 为容器分配一个伪 tty。这为我们在新容器中提供了一个交互式 shell。我们使用一个简单的 exit 命令退出容器。

现在,在这个 Docker 基础教程中,我们可以尝试运行 Ubuntu 图片。

$ sudo docker run -it ubuntu /bin/bash

您可以注意到,docker 会在本地检查镜像,如果不存在,则会自动从镜像库中提取镜像,然后我们再次运行交互式 shell。我们还可以在运行容器时命名它们。

$ sudo docker run –-name our_container -it ubuntu /bin/bash

然后我们再次退出。

我们还可以运行之前创建的容器,无需交互式 shell。

$ sudo docker start container_name

并停止容器,写入 docker stop container_name

$ sudo docker stop container_name

如果我们想查看所有正在运行的容器,只需运行

$ docker ps

对于所有容器,我们在同一命令末尾添加“-a”,例如 docker ps -a。

该命令显示容器的ID、创建时使用的镜像、运行状态、暴露的端口以及为便于管理而随机生成的容器名称。

当我们运行容器时,我们还想知道它们使用了多少资源,为此我们可以使用该命令。

$ docker stats

您还可以看到我们在本地下载了哪些图像以及有关它们的信息。

$ sudo docker images

上面 Docker 示例中的命令显示带有标签的 docker 镜像,该标签显示了我们的镜像版本、独特的镜像 ID、创建时间和镜像大小。

什么是虚拟化?

以前,部署服务的过程缓慢而痛苦。首先,开发人员编写代码;然后运营团队将其部署到裸机上,他们必须寻找库版本、补丁和语言编译器才能使代码正常工作。如果出现一些错误或错误,这个过程就会重新开始,开发人员会修复它,然后运营团队再次进行部署。

随着虚拟机管理程序的创建,情况有所改善。虚拟机管理程序有多个 虚拟机 或同一主机上的虚拟机,可能正在运行或已关闭。虚拟机大大减少了部署代码和修复错误的等待时间,但真正的游戏规则改变者是 Docker 容器。

重要的 Docker 命令

以下是重要的 Docker 命令:

命令 描述
码头工人信息 信息司令部
码头工人拉 下载图片
docker run -i -t 镜像名称/bin/bash 将镜像作为容器运行
docker 启动我们的容器 启动容器
docker stop 容器名称 停止容器
码头工人 所有正在运行的容器列表
码头工人统计 容器信息
码头图片 下载的图像列表
Docker 清理 终止所有正在运行的容器。

另外,请阅读 Docker 工作面试问题及答案 适合新手和经验丰富的专业人士。

总结

  • Docker 是一个虚拟化软件开发平台,具有多种 Opera在同一主机上运行的系统。它有助于分离基础设施和应用程序,以便快速交付软件。
  • Docker Archi結構: Docker 引擎、Docker 镜像、Docker 注册表、Docker 容器。
  • 码头工人引擎: Docker 是客户端-服务器类型的应用程序,这意味着我们有中继到服务器的客户端。因此,名为 dockerd 的 Docker 守护进程是代表服务器的 Docker 引擎。
  • Docker 镜像: Docker 镜像是我们容器的“源代码”;我们使用它们来构建容器。它们可以预装软件,从而加快部署速度。它们是可移植的,我们可以使用现有镜像或构建自己的镜像。
  • Docker 注册表: Docker 将我们构建的镜像存储在注册表中。有公共和私有注册表。Docker 公司有一个称为 Docker hub 的公共注册表,您也可以在其中私下存储镜像。Docker hub 有数百万个镜像,您现在就可以开始使用。
  • Docker 容器: 容器是组织单位,也是 Docker 的基本概念之一。当我们构建映像并开始运行它时,我们就是在容器中运行。使用容器类比是因为我们在容器中运行的软件具有可移植性。