【问题标题】:Docker containers become unresponsive/hang on errorDocker 容器变得无响应/挂起错误
【发布时间】:2021-11-28 23:05:04
【问题描述】:

我在 Windows 上运行 Docker Desktop,但遇到容器在启动错误时无响应的问题。这不是“每次”都发生,但到目前为止大部分时间都会发生。因此,我必须非常小心地一次启动我的容器 1,如果我看到一个错误,我必须“重新启动 Docker 桌面”并重新启动。

我正在使用 docker-compose,作为一个具体的例子,今天早上我开始使用 elasticsearch、zookeeper,然后是 kafka。 Kafka 抛出了有关 zookeeper 状态的异常并关闭 - 但现在 kafka 容器在 docker 中没有响应。我无法停止它(它已经停止了?)但它显示为正在运行。我无法 CLI 进入它,我无法重新启动它。前进的唯一方法是使用调试菜单重新启动 docker。 (如果我打开了 restart:always 标志,那么容器实际上会自动重新启动,但是鉴于它们会抛出错误,它只会在开始时绕圈旋转,然后在我无法停止/杀死/删除有问题的容器的情况下死亡) 重新启动 docker 后,我将能够查看容器的日志并查看引发的错误...

我几乎所有的容器都会发生这种情况,但是如果我在 Docker Desktop 中查看日志窗口的同时启动容器,我可能“更有可能”再次启动容器如果有错误。

我尝试了几个不同的容器,这对我们来说似乎是一个很常见的问题,它似乎与我传递到容器中的任何特定设置无关,而是来自我们的 docker-compose文件如下:

volumes:
   zData:
   kData:
   eData:

   zookeeper:
      container_name: zookeeper
      image: bitnami/zookeeper:latest
      environment:
         ALLOW_ANONYMOUS_LOGIN: "yes"           #Dev only
         ZOOKEEPER_ROOT_LOGGER: WARN, CONSOLE
         ZOOKEEPER_CONSOLE_THRESHOLD: WARN
      ports:
         - "2181:2181"
      volumes:
         - zData:/bitnami/zookeeper:rw
      logging:
         driver: "fluentd"
         options:
            fluentd-address: localhost:24224
            tag: zookeeper
            fluentd-async-connect: "true"
         
   kafka:
      container_name: kafka
      image: bitnami/kafka:latest
      depends_on:
         - zookeeper
      environment:
         ALLOW_PLAINTEXT_LISTENER: "yes"  # Debug only
         KAFKA_ADVERTISED_PORT: 9092
         KAFKA_ADVERTISED_HOST_NAME: kafka
         KAFKA_CREATE_TOPICS: xx1_event:1:1,xx2_event:1:1,xx3_event:1:1,xx4_event:1:1
         KAFKA_JMX_OPTS: -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=${DOCKER_HOSTNAME} -Dcom.sun.management.jmxremote.rmi.port=9096 -Djava.net.preferIPv4Stack=true
         JMX_PORT: 9096
         KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      hostname: kakfa
      ports:
         - 9092:9092
         - 9096:9096
      volumes:
         - kData:/bitnami/kafka:rw
      logging:
         driver: "fluentd"
         options:
            fluentd-address: localhost:24224
            tag: zookeeper
            fluentd-async-connect: "true"

   elasticsearch:
      image: bitnami/elasticsearch:latest
      container_name: elasticsearch
      cpu_shares: 2048
      environment:
         ELASTICSEARCH_HEAP_SIZE: "2048m"
         xpack.monitoring.enabled: "false"
      ports:
         - 9200:9200
         - 9300:9300
      volumes:
        - C:/config/elasticsearch.yml:/opt/bitnami/elasticsearch/config/my_elasticsearch.yml:rw
        - eData:/bitnami/elasticsearch/data:rw

我想知道这可能是一个资源问题,但是我在使用 WSL2 的合理规格的笔记本电脑(i7 笔记本电脑、SSD、16GB RAM)上运行它(使用 Hyper- V) 和 RAM 限制看起来并没有被接近。并且当启动没有错误时,系统运行良好并且使用更多的资源。

关于我可以尝试什么的任何想法?我很惊讶没有更多的人为此苦苦挣扎?

【问题讨论】:

    标签: windows docker docker-compose freeze fluentd


    【解决方案1】:

    当前存在一个问题 https://github.com/moby/moby/issues/40063,当日志记录在异步模式下设置为 fluentd 并且 fluentd 容器无法运行时,容器将挂起/冻结/变得无响应。

    【讨论】:

      猜你喜欢
      • 2021-03-19
      • 2017-07-21
      • 2017-05-20
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      相关资源
      最近更新 更多