如何使用 podman-compose 启用容器间通信

How to enable inter container communication using podman-compose

我们基本上有一个 docker-compose.yml 文件,如下所示:

services:
  db:
    image: db
    container_name: db
    ports:
      - 7474:7474
      - 7687:7687
    networks:
      - com
  backend:
    image: backend
    container_name: backend
    ports:
      - 8080:8080
    environment:
      # Lookup host of db on docker-compose network
      - DB_HOST=db:7687
    depends_on:
      - db
    networks:
      - com
networks:
  com: {}

当我在使用 docker 作为后端的本地计算机上使用 docker-compose up 启动容器时,我可以看到后端实际上可以查找我的数据库容器的地址。

当我将 podman-compose updocker-compose uppodman 后端结合使用时,无法解析主机。我认为 podman 会像 docker-compose 那样通过为容器创建网络来处理容器间通信。我做错了什么吗?

我刚刚检查了一下,podman 没有为 运行 中的容器创建 pod。我假设它会默认为 运行 中的所有容器创建一个 pod。这样容器至少应该能够通过本地主机相互访问。但是由于没有 pod,localhost 也无法正常工作。有人知道问题出在哪里吗?

升级到较新的 Podman 版本确实解决了问题。有关详细信息,请查看此 Github 问题:https://github.com/containers/podman/issues/11457#issuecomment-916260531