同样是 bridge 模式, 为什么在 podman 环境中. 用 docker-compose 启动的两个服务之间无法通过服务名称相互通讯?

2022-08-25 10:44:45 +08:00
 l4ever
docker -v
Docker version 20.10.17, build 100c701
podman -v
podman version 4.0.2

分别在上述环境中使用 docker-compose 启动下述两个服务, 在 docker 环境下, exec 到 next-terminal 可以 ping guacd 可以通 在 podman 下 ping 不通.

version: '3.3'
services:
  guacd:
    image: dushixiang/guacd:latest
    volumes:
      - ./data:/usr/local/next-terminal/data
    restart:
          always
          
  next-terminal:
    image: dushixiang/next-terminal:latest
    environment:
      DB: sqlite
      GUACD_HOSTNAME: guacd
      GUACD_PORT: 4822
    ports:
      - "8088:8088"
    volumes:
      - /etc/localtime:/etc/localtime
      - ./data:/usr/local/next-terminal/data
    restart:
      always

1475 次点击
所在节点    Docker
7 条回复
ccccccccw
2022-08-25 13:43:00 +08:00
需要 link 的吧?
l4ever
2022-08-25 13:46:48 +08:00
@ccccccccw link 已经被放弃了, 加了 link, docker-compose up 不起来了.
hefish
2022-08-25 13:49:06 +08:00
podman 倒没怎么用过, 看看 podman network ls ,看看 podman inspect 的网络部分。。。
ccccccccw
2022-08-25 14:03:16 +08:00
@l4ever 哦哦这样
julyclyde
2022-08-25 16:28:15 +08:00
难道不应该问,为什么 docker 环境那边竟然神奇的可以 ping 通吗?
muxueqz
2022-08-26 09:36:12 +08:00
podman 需要安装一个叫 dnsname 的 cni plugin 和 dnsmasq
https://github.com/containers/podman-compose 这里有说明
muxueqz
2022-08-26 11:18:19 +08:00
@muxueqz
或者用 netavark

apt install netavark aardvark-dns

然后修改 /etc/containers/containers.conf
增加
[network]
network_backend = "netavark"

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/875257

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX