跳至主要内容

包含“containers”标签的2篇博文

查看所有标签

Podman Desktop 荣获 2024 DEVIES 奖

·阅读时长 2 分钟
Cedric Clyburn
开发者倡导者

我们很荣幸地宣布,Podman Desktop容器与 Kubernetes类别中获得了享有盛誉的2024 DEVIES 奖。该奖项证明了 Podman Desktop 团队和更广泛的开源社区为帮助开发人员而做出的努力卓有成效。Podman Desktop 提高了开发人员容器工作流的效率,并为应用程序从容器到 Kubernetes(领先的开源容器编排平台)的轻松过渡提供了支持。

“虽然 Podman Desktop 只是在去年正式发布,但社区的反应却十分令人印象深刻,并且令人无比欣慰。我们为获得这项杰出认可而感到无比自豪,它表彰了我们对塑造容器开发未来的热情、投入和创新,这些创新得到了红帽支持的充满活力的开源标准的支持。”Podman Desktop 团队的产品经理 Stévan Le Meur表示。

hero

DEVIES 奖是什么?

DeveloperWeek颁发的 DEVIES 奖旨在表彰软件开发社区中最具创新性和影响力的工具、平台和技术。Podman Desktop 荣获容器与 Kubernetes 类别最佳创新奖,突出了其对该行业的重要影响及其在彻底改变开发人员构建、交付和运行应用程序的方式中的作用。DEVIES 奖的获奖者由独立的行业领先 DevNetwork 咨询委员会从数百名提名者中选出。

让我们一起庆祝!

我们很高兴在 2024 年 2 月 21 日至 23 日于加利福尼亚州奥克兰举行的 DeveloperWeek 2024 上以及 2024 年 2 月 27 日至 29 日(线上)的颁奖典礼上领取该奖项。此外,红帽开发者倡导者 Cedric Clyburn 将发表关于 Podman Desktop 的主题演讲,名为“从容器到 Pod,再到 Kubernetes – 帮助您的开发环境!”,其中将全面介绍 Podman,展示 Podman Desktop 体验,以及从容器到 Pod,最后到 Kubernetes 的多层应用程序!

最后,我们必须承认,这项荣誉是 整个 Podman Desktop 贡献者社区共同努力的结果!我们也感谢 DevNetwork 咨询委员会和 DeveloperWeek 颁发了这份荣誉,并为我们提供了与更广泛的开发者社区分享 Podman Desktop 创新的机会。

Podman Desktop 上的 Compose 入门

·阅读时长 5 分钟
Charlie Drage
软件工程师

在这篇博文中,我们将学习如何使用 Podman Desktop 来运行多容器 Compose 应用程序。

目标

  • 通过 podman compose up 启动 Compose YAML 文件。
  • 查看留言簿 Web 应用程序。
  • 确认 Web 应用程序与数据库同步并正常运行。
  • 使用 Podman Desktop 查看、检查和访问 Redis 集群的终端。

Compose 是什么?

Compose 是一个规范,用于定义和运行多容器 Docker 应用程序。使用 Pose,您可以使用 YAML 文件来配置应用程序的服务、网络和卷。这使您能够在一个文件中捕获运行一组相互连接的容器(作为应用程序)所需的所有配置。例如,如果您有一个应用程序需要一个 Web 服务器、一个数据库和一个缓存服务,您可以在 Compose 文件中定义这些组件及其关系。

要使用 Compose YAML 文件,您可以使用规范实现,例如 podman composedocker compose

开始之前

如果您还没有安装 Compose,让我们完成安装 Compose 实现二进制文件的入门过程。

  1. 设置 > 资源下。
  2. 点击 Compose 下的设置(如果还没有安装,它将显示出来)。
  3. 完成入门过程。

Onboarding process

确认您可以运行 podman compose

podman compose
Run compose workloads via an external provider such as docker-compose or podman-compose

Description:
This command is a thin wrapper around an external compose provider such as docker-compose or podman-compose. This means that podman compose is executing another tool that implements the compose functionality but sets up the environment in a way to let the compose provider communicate transparently with the local Podman socket. The specified options as well the command and argument are passed directly to the compose provider.
...

下载并运行示例应用程序

我们的示例应用程序位于 github.com/redhat-developer/podman-desktop-demo

我们将使用 git clone,以便我们可以构建 Go 二进制 Web 应用程序。

git clone https://github.com/redhat-developer/podman-desktop-demo
cd podman-desktop-demo/guestbook-compose

运行 podman compose up -d 来启动应用程序。

podman compose up -d
>>>> Executing external compose provider "/usr/local/bin/docker-compose". Please refer to the documentation for details. <<<<

[+] Running 3/3
✔ Container redis-replica Started 0.0s
✔ Container web Started 0.0s
✔ Container redis-leader Started 0.0s

查看留言簿应用程序

现在您可以在 Podman Desktop 中看到所有三个容器都已启动并正常运行。

点击“打开浏览器”按钮来查看 Web 应用程序。

Open browser

在留言簿 Web 应用程序中,您可以:

  • "签名"留言簿,这将写入 Redis 主节点并同步到副本。
  • "读取"留言簿,这将从 Redis 副本池中读取。即使 Redis 主节点不可用,这也允许进行读取操作。
  • /env: 查看容器的环境变量。
  • /info: 查看有关 Redis 集群的信息。

Guestbook application

查看和修改数据库

使用 Podman Desktop,您也可以直接从 GUI 访问容器的终端并修改数据库。

点击“打开终端”访问 `redis-leader` 终端

Open terminal

修改数据库,就像您在进行数据库管理一样

  1. 在容器内运行 `redis-cli` 以访问 Redis 数据库。
  2. 输入 `LPUSH guestbook "Hello World!"`,您将看到您的 Web 应用程序实时更新。
  3. 输入 `DEL guestbook`,您将看到您的数据库删除了 `guestbook` 键并清空了数据库。

Redis CLI

更改将实时反映在留言簿中。

您可以进一步修改数据库,并看到更改传播到 Redis 副本。

例如,查看 `redis-replica` 的日志,您将注意到存在周期性数据库同步以及对数据库的读取

Redis replica logs

它是如何工作的?

此多容器场景中体系结构工作原理的快速概述

  • 在留言簿应用程序中,它在端口 6379 上查找名为 `redis-leader` 和 `redis-replica` 的数据库。
  • 因为它是一个 Compose 应用程序,所以容器在同一个网络上连接。这意味着可以通过容器名称访问相邻容器。

Compose 应用程序中有一组环境变量,Web 应用程序可以修改这些环境变量

  • REDIS_LEADER:默认值为 `redis-leader`。
  • REDIS_REPLICAS:默认值为 `redis-replica`。可以逗号分隔,例如 `redis-replica-1,redis-replica-2`。
  • REDIS_PORT:默认值为 `6379`。
  • SERVER_PORT:默认值为 `8080`。

扩展更多副本

想要扩展更多副本吗?这可以通过在您的 `compose.yaml` 中添加一个环境变量并复制您的 `redis-replica` 条目来实现。

修改您的 `compose.yaml` 如下

services:
redis-leader:
container_name: redis-leader
image: redis:latest
ports:
- '6379'

redis-replica:
container_name: redis-replica
image: redis:latest
ports:
- '6379'
command: redis-server --replicaof redis-leader 6379

redis-replica-2:
container_name: redis-replica-2
image: redis:latest
ports:
- '6379'
command: redis-server --replicaof redis-leader 6379

web:
container_name: web
build: ./web
environment:
- REDIS_REPLICAS=redis-replica1,redis-replica2
ports:
- '8080:8080'

再次运行 `podman compose up -d` 以确保已添加新容器,并且新环境变量已传播

podman compose up -d
>>>> Executing external compose provider "/usr/local/bin/docker-compose". Please refer to the documentation for details. <<<<

[+] Running 4/4
✔ Container redis-replica-2 Started 0.0s
✔ Container redis-leader Running 0.0s
✔ Container web Started 0.0s
✔ Container redis-replica Running 0.0s