在本教程(一个包含 7 部分内容的系列的第 1 部分)中,我们准备一个要在 Kubernetes 中使用的多容器应用程序。 使用 Docker Compose 之类的现有开发工具在本地生成和测试应用程序。 学习如何:
克隆 GitHub 中的示例应用程序源
根据示例应用程序源创建容器映像
在本地 Docker 环境中测试多容器应用程序
完成后,以下应用程序会在本地开发环境中运行:
在后面的教程中,将此容器映像上传到 Azure 容器注册表 (ACR),然后部署到 AKS 群集中。
本教程假定你基本了解核心 Docker 概念,如容器、容器映像和
docker
命令。 有关容器的入门基础知识,请参阅
Docker 入门
。
若要完成本教程,需要运行 Linux 容器的本地 Docker 开发环境。 Docker 提供的包可在
Mac
、
Windows
或
Linux
系统上配置 Docker。
Azure Cloud Shell 不包含完成这些教程的每个步骤所需的 Docker 组件。 因此,我们建议使用完整的 Docker 开发环境。
获取应用程序代码
本教程中使用的
示例应用程序
是一个包含前端 Web 组件和后端 Redis 实例的基本投票应用。 Web 组件打包到自定义容器映像中。 Redis 实例使用 Docker 中心提供的未修改的映像。
使用
git
可将示例应用程序克隆到开发环境。
git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
切换到克隆目录。
cd azure-voting-app-redis
目录包含应用程序源代码、预创建的 Docker Compose 文件和 Kubernetes 清单文件。 整套教程都会使用这些文件。 目录的内容和结构如下所示:
azure-voting-app-redis
│ azure-vote-all-in-one-redis.yaml
│ docker-compose.yaml
│ LICENSE
│ README.md
├───azure-vote
│ │ app_init.supervisord.conf
│ │ Dockerfile
│ │ Dockerfile-for-app-service
│ │ sshd_config
│ │
│ └───azure-vote
│ │ config_file.cfg
│ │ main.py
│ │
│ ├───static
│ │ default.css
│ │
│ └───templates
│ index.html
└───jenkins-tutorial
config-jenkins.sh
deploy-jenkins-vm.sh
创建容器映像
使用 Docker Compose,可自动生成容器映像和部署多容器应用程序。
以下命令使用示例 docker-compose.yaml
文件创建容器映像、下载 Redis 映像和启动应用程序。
docker compose up -d
完成后,使用 docker images
命令可查看创建的映像。 已下载或创建两个映像。 azure-vote-front 映像包含前端应用程序。 redis 映像用于启动 Redis 实例。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mcr.microsoft.com/oss/bitnami/redis 6.0.8 3a54a920bb6c 2 years ago 103MB
mcr.microsoft.com/azuredocs/azure-vote-front v1 4d4d08c25677 5 years ago 935MB
运行 docker ps
命令,查看正在运行的容器。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d10e5244f237 mcr.microsoft.com/azuredocs/azure-vote-front:v1 "/entrypoint.sh /sta…" 3 minutes ago Up 3 minutes 443/tcp, 0.0.0.0:8080->80/tcp azure-vote-front
21574cb38c1f mcr.microsoft.com/oss/bitnami/redis:6.0.8 "/opt/bitnami/script…" 3 minutes ago Up 3 minutes 0.0.0.0:6379->6379/tcp azure-vote-back
在本地测试应用程序
若要查看正在运行的应用程序,请导航到本地 Web 浏览器中的 http://localhost:8080
。 示例应用程序会加载,如以下示例所示:
现已验证应用程序的功能,可停止并删除正在运行的容器。 请勿删除容器映像 - 在下一教程中,需将 azure-vote-front 映像上传到 ACR 实例。
若要停止并删除容器实例和资源,请使用 docker-compose down
命令。
docker compose down
删除本地应用程序以后,你就有了一个包含 Azure 投票应用程序的 Docker 映像 azure-vote-front,可以在下一教程中使用。
在本教程中,你创建了一个示例应用程序,为该应用程序创建了容器映像,然后测试了该应用程序。 你已了解如何执行以下操作: