You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于labs.play-with-docker.com执行docker-compose后会话超时的咨询

问题描述

在浏览器中使用在线实验环境启动容器后,执行docker-compose up -d启动ZooKeeper集群(compose配置如下),约1分钟后会自动断开连接,切换网络也无法解决;但不启动该compose文件时无此问题,网络切换也正常。

对应的docker-compose.yml内容:

version: '3.8'
services:
  zoo1:
    image: zookeeper:3.6.3
    hostname: zoo1
    container_name: zoo1
    ports:
      - "2181:2181"
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo2:
    image: zookeeper:3.6.3
    hostname: zoo2
    container_name: zoo2
    ports:
      - "2182:2181"
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo3:
    image: zookeeper:3.6.3
    hostname: zoo3
    container_name: zoo3
    ports:
      - "2183:2181"
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

可能原因及解决办法

1. 在线实验环境资源限制触发自动回收

该在线环境对单实例的CPU、内存等资源有严格阈值,启动3个ZooKeeper节点后资源占用超标,会被系统自动终止连接或回收实例。

  • 调整节点数量测试:暂时只保留1个ZooKeeper节点,修改compose文件后重新执行docker-compose up -d,验证是否还会断连。
  • 添加容器资源限制:在每个ZooKeeper服务下增加资源限制配置,避免占用过多资源:
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 512M
    
  • 查看资源占用:执行docker stats命令,确认容器的CPU、内存使用率是否超出环境承受范围。

2. ZooKeeper集群初始化网络峰值触发限制

3个节点同时启动时会进行选举、数据同步,短时间内产生大量网络流量,可能触发环境的网络安全策略导致连接断开。

  • 逐个启动节点:先启动zoo1:docker-compose up -d zoo1,等待10秒后启动zoo2,最后启动zoo3,分散网络压力。
  • 检查集群初始化日志:执行docker logs zoo1、docker logs zoo2查看节点日志,确认是否有选举失败、节点间连接超时等错误,排查集群配置问题。

3. 会话闲置超时

若容器启动后无持续交互操作,可能被环境判定为闲置而断开连接。可以在启动容器后,每隔几秒执行docker ps等命令保持会话活跃。

内容的提问来源于stack exchange,提问作者user14019518

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 04:22:14