什么是 Docker?

Docker 是一套平台即服务 (PaaS) 产品,它使用操作系统级虚拟化技术以软件包(称为容器)的形式交付软件。容器彼此隔离,并捆绑自己的软件、库和配置文件;它们可以通过明确定义的渠道相互通信。所有容器都由单个操作系统内核运行,因此使用的资源比虚拟机少。

什么是 Docker?

Docker 是一个开源容器化平台,您可以使用它将应用程序及其所有依赖项打包到一个名为容器的标准化单元中。容器重量轻,因此易于携带,并且与底层基础架构和其他容器隔离。您可以在安装了 docker 的任何机器上将 docker 映像作为 docker 容器运行,而无需依赖操作系统。

 

Docker 之所以受欢迎,是因为:

  1. 可移植性。
  2. 可重复性。
  3. 效率。
  4. 可扩展性。

什么是 Dockerfile?

Dockerfile 使用 DSL(领域特定语言)并包含生成 Docker 镜像的指令。Dockerfile 将定义快速生成镜像的流程。在创建应用程序时,您应该按顺序创建 Dockerfile,因为 Docker守护程序会从上到下运行所有​​指令。

(Docker 守护进程,通常简称为“Docker”,是管理系统上的 Docker 容器的后台服务。)

  • 它是一个文本文档,包含必要的命令,执行后可帮助组装 Docker 镜像。
  • Docker 镜像是使用 Docker 文件创建的。

Docker 的工作原理

Docker 使用客户端-服务器架构。Docker 客户端与 docker 守护进程通信,这有助于构建、运行和分发 docker 容器。Docker 客户端与守护进程在同一系统上运行,或者我们可以远程将 Docker 客户端与 Docker 守护进程连接起来。借助 UNIX 套接字或网络上的 REST API,docker 客户端和守护进程可以相互交互。

 

什么是 Docker Image?

它是一个由多层组成的文件,用于在 Docker 容器中执行代码。它们是一组用于创建 Docker 容器的指令。Docker 镜像是一个可执行软件包,其中包含运行应用程序所需的一切。此镜像告知容器应如何实例化,确定将运行哪些软件组件以及如何运行。Docker 容器是一个虚拟环境,它将应用程序代码与运行应用程序所需的所有依赖项捆绑在一起。应用程序可以在一个计算环境到另一个计算环境中快速可靠地运行。

什么是 Docker 容器?

Docker 容器是镜像的运行时实例。允许开发人员将应用程序与所需的所有部分(如库和其他依赖项)一起打包。Docker 容器是 Docker 镜像的运行时实例。容器包含应用程序所需的整个套件,因此应用程序可以以独立的方式运行。例如,假设有一个带有 NGINX SERVER 的 Ubuntu OS 镜像,当使用 docker run 命令运行此镜像时,将创建一个容器,并且 NGINX SERVER 将在 Ubuntu OS 上运行。

什么是 Docker Hub?

Docker Hub 是一种存储库服务,它是一种基于云的服务,人们可以随时随地通过互联网推送他们的 Docker 容器镜像,也可以从 Docker Hub 提取 Docker 容器镜像。通常,它可以轻松查找和重用镜像。它提供的功能包括,您可以将镜像推送为私有或公共注册表,您可以在其中存储和共享 Docker 镜像

DevOps 团队主要使用 Docker Hub。它是一种开源工具,适用于所有操作系统。它就像存储一样,我们存储图像并在需要时提取图像。当一个人想要从 Docker Hub 推送/提取图像时,他们必须具备 Docker 的基本知识。让我们讨论一下 Docker 工具的要求。

 

什么是 Docker Compose?

Docker Compose 将执行基于 YAML 的多容器应用程序。YAML 文件包含部署容器 Docker Compose 所需的所有配置,该配置与 Docker Swarm 集成,并提供构建和部署容器的说明。使用 Docker Compose,每个容器都构建为在单个主机上运行。

如何下载Docker Desktop?

Docker Desktop 提供 GUI 来处理 docker 容器、docker 镜像和 docker 网络。Docker Desktop 提供单独的环境,其中包含 Docker Engine、Docker CLI、Docker Compose、Kubernetes 和其他工具,这些工具是构建、运送和运行以容器形式运行应用程序所必需的,这使其更加用户友好。

 

Docker 命令

docker 中有“n”个命令,以下是一些最常用的命令。

  1. Docker Run
  2. Docker Pull
  3. Docker PS
  4. Docker Stop
  5. Docker Start
  6. Docker rm
  7. Docker RMI
  8. Docker Images
  9. Docker exec
  10. Docker Login

Docker 引擎

托管容器的软件名为 Docker Engine。Docker Engine 是一个基于客户端-服务器的应用程序。docker 引擎有 3 个主要组件:

  1. Server:负责在Docker上创建和管理Docker镜像、容器、网络、卷等,称为守护进程。
  2. REST API:它指定应用程序如何与服务器交互并指示它做什么。
  3. 客户端:客户端是一个 docker 命令行界面 (CLI),允许我们使用 docker 命令与 Docker 交互。

为什么要使用 Docker

Docker 可用于打包应用程序及其依赖项,从而使其轻量级且易于更快更可靠地交付代码。如果机器中安装了 docker 引擎,Docker 使在生产环境中运行应用程序变得非常简单,docker 容器可以独立于平台。

什么是 Docker For AWS?

Docker 是以容器形式运行应用程序的最强大工具。Docker 容器重量轻,可以在任何操作系统上运行。

AWS 提供 Amazon Elastic Container Service (Amazon ECS),它是一种完全托管的容器服务,您可以通过它部署、扩展和管理 Docker 容器。根据性能,Amazon ECS 是最可靠的平台,它还可以与其他 AWS 服务集成,如负载平衡、服务发现和容器运行状况监控。

Docker 容器与虚拟机之间的区别

Docker 容器

虚拟机

Docker 容器包含二进制文件、库和配置文件以及应用程序本身。

虚拟机 (VM) 在虚拟机管理程序上运行,虚拟机管理程序允许多个虚拟机与其自己的操作系统一起在一台机器上运行。

它们不包含每个容器的客户操作系统,而是依赖于底层操作系统内核,这使得容器变得轻量级。

每个虚拟机都有自己的操作系统副本以及应用程序和必要的二进制文件,这使得它变得更大并且需要更多的资源。

容器与同一主机操作系统中的其他容器共享资源,并提供操作系统级别的进程隔离。

它们提供硬件级别的进程隔离,但启动速度较慢。

在 Ubuntu 上安装 Docker

1.删​​除旧版本的Docker

$ sudo apt-get remove docker docker-engine docker.io containerd runc

2. Installing Docker Engine

$ sudo apt-get update
 
$ sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
$ sudo groupadd docker
$ sudo usermod -aG docker $USER

检查你的系统中是否成功安装了docker

$ sudo docker run hello-world

示例:使用 Docker 容器化应用程序

1.创建一个包含2个文件(Dockerfile和main.py文件)的文件夹。

  • Dockerfile
  • 主程序

2. 使用以下代码编辑 main.py。

#!/usr/bin/env python3

print("Docker and GFG rock!")

3. 使用以下命令编辑 Dockerfile。

FROM python:latest
COPY main.py /
CMD [ "python", "./main.py" ]

4.创建Docker 镜像。

创建并编辑 main.py 文件和 Dockerfile 后,创建映像来包含您的应用程序。
$ sudo docker build -t python-test 。

“-t”选项允许定义图像的名称。“python-test”是我们为图像选择的名称。

5.运行 Docker 映像

一旦创建了图像,您的代码就可以启动了。

$ sudo docker run python-test

将映像推送到 Docker Hub 的示例

1.在 Docker Hub 上创建一个帐户,如果已经有一个帐户,则使用现有帐户。

2.点击“Create Repository”按钮,输入文件名称,点击“Create”。

3.现在将“标记我们的图像”并“将其推送到我们刚刚创建的 Docker Hub 存储库”。

现在,运行以下命令列出 docker 镜像:

$ docker images

以上将给出这个结果

REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB

图像 ID 用于标记图像。标记图像的语法是:

docker tag <image-id> <your dockerhub username>/python-test:latest
$ docker tag c7857f97ebbd afrozchakure/python-test:latest

4.将镜像推送到 Docker Hub 存储库

$ docker push afrozchakure/python-test

从 Docker Hub 获取并运行镜像

1.要从本地系统中删除特定图像的所有版本,我们使用该图像 ID。

$ docker rmi -f af939ee31fdc

2.现在运行映像,如果本地机器上不存在该映像,它将从 docker hub 获取该映像。

$ docker run afrozchakure/python-test

结论

因此,您已经了解了 Docker 的基础知识、虚拟机和 Docker 容器之间的区别以及 Docker 中的一些常用术语。此外,我们还在系统上完成了 Docker 的安装。我们使用 Docker 创建了一个应用程序,并将我们的镜像推送到 Docker Hub。最后,我们了解了如何从本地系统中删除特定镜像,然后如果本地不存在该镜像,则从 Docker Hub 中提取该镜像。

什么是Docker Build?

Docker build 是一个用于使用 Dockerfile 构建 docker 镜像的命令。

什么是Docker 日志?

Docker 守护进程和 Docker 容器将以文本消息的形式生成 docker 日志,这将帮助您进一步排除故障、监控应用程序的性能并收集有关 Docker 环境状态的信息。

 

posted @ 2024-06-03 04:57  wongchaofan  阅读(30)  评论(0编辑  收藏  举报