云计算核心技术Docker教程:在 Azure 上部署 Docker 容器

2022-10-31

Docker Azure 集成使开发人员能够在构建云原生应用程序时使用原生 Docker 命令在 Azure 容器实例 (ACI) 中运行应用程序。新体验提供了 Docker Desktop 和 Microsoft Azure 之间的紧密集成,允许开发人员使用 Docker CLI 或 VS Code 扩展快速运行应用程序,从本地开发无缝切换到云部署。

此外,Docker 和 Microsoft 开发人员技术之间的集成允许开发人员使用 Docker CLI 来:

轻松登录 Azure

在一个 Docker 命令中设置 ACI 上下文,允许您从本地上下文切换到云上下文并快速轻松地运行应用程序

使用 Compose 规范简化单容器和多容器应用程序开发,允许开发人员首次在云容器服务中本地无缝调用完全兼容 Docker 的命令

先决条件

要在 Azure 上部署 Docker 容器,您必须满足以下要求:

下载并安装最新版本的 Docker Desktop。

下载 Mac

下载 Windows

或者,安装适用于 Linux的Docker Compose CLI。

确保你有 Azure 订阅。您可以开始使用Azure 免费帐户。

在 ACI 上运行 Docker 容器

Docker 不仅在本地运行容器,而且使开发人员能够docker run使用docker compose up命令在 Compose 文件中定义或部署多容器应用程序在 ACI 上无缝部署 Docker 容器。

以下部分包含有关如何在 ACI 上部署 Docker 容器的说明。另请参阅ACI 支持的容器功能的完整列表。

登录 Azure

运行以下命令以登录 Azure:

$ docker login azure

这将打开您的 Web 浏览器并提示您输入 Azure 登录凭据。如果 Docker CLI 无法打开浏览器,它将回退到Azure 设备代码流并让您手动连接。请注意,Azure 命令行登录与 Docker CLI Azure 登录是分开的。

或者,您可以在没有交互的情况下登录(通常在脚本或持续集成方案中),使用 Azure 服务主体,使用 docker login azure –client-id xx –client-secret yy –tenant-id zz

创建 ACI 上下文

登录后,您需要创建一个与 ACI 关联的 Docker 上下文以在 ACI 中部署容器。创建 ACI 上下文需要 Azure 订阅、资源组和区域。例如,让我们创建一个名为 的新上下文myacicontext:

$ docker context create aci myacicontext

此命令会自动使用您的 Azure 登录凭据来识别您的订阅 ID 和资源组。然后,您可以交互地选择要使用的订阅和组。如果你愿意,你可以使用以下标志指定的CLI这些选项:–subscription-id, –resource-group,和–location。

如果您的 Azure 帐户中没有任何现有资源组,该docker context create aci myacicontext命令将为您创建一个。您不必指定任何其他选项来执行此操作。

运行一个容器

现在您已经登录并创建了 ACI 上下文,您可以开始使用 Docker 命令在 ACI 上部署容器。

有两种方法可以使用新的 ACI 上下文。您可以–context在 Docker 命令中使用该标志来指定您希望使用新创建的 ACI 上下文运行该命令。

$ docker –context myacicontext run -p 80:80 nginx

或者,您可以使用docker context use选择 ACI 上下文作为运行 Docker 命令的焦点来更改上下文。例如,我们可以使用docker context use命令来部署一个 Nginx 容器:

$ docker context use myacicontext

$ docker run -p 80:80 nginx

切换到myacicontext上下文后,您可以使用docker ps列出在 ACI 上运行的容器。

在上面启动的演示 Nginx 容器的情况下,ps 命令的结果将在“PORTS”列中显示容器运行的 IP 地址和端口。例如,它可能显示52.154.202.35:80->80/tcp,您可以通过浏览 来查看 Nginx 欢迎页面http://52.154.202.35。

要查看容器中的日志,请运行:

$ docker logs

要在正在运行的容器中执行命令,请运行:

$ docker exec -t COMMAND

要停止并从 ACI 中删除容器,请运行:

$ docker stop

$ docker rm

您可以使用docker rm. 要移除正在运行的容器,您必须使用该–force标志,或者docker stop在移除容器之前停止使用该容器。

您好!请登录

点击取消回复