【发布时间】: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