我有一个 ASP.NET Core Web 应用程序,我已将日志记录添加到 ElasticSearch 和 Kibana。
我在 Windows 主机上运行它,容器是 Linux。
docker-compose 文件设置为首先启动 elastic search,然后是 kibana,最后是 Web 应用程序 - 如下所示:
version: '3.4'
services:
elasticsearch:
container_name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.2
ports:
- 9200:9200
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
environment:
- xpack.monitoring.enabled=true
- xpack.watcher.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
networks:
- elastic
kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:7.9.2
ports:
- 5601:5601
depends_on:
- elasticsearch
environment:
- ELASTICSEARCH_URL=http://localhost:9200
networks:
- elastic
hyena.webapp:
image: ${DOCKER_REGISTRY-}hyena_image
build:
context: .
dockerfile: Hyena.WebApp/Dockerfile
ports:
- "5001:443"
- "5000:80"
container_name: "hyena_container"
volumes:
- type: bind
source: /c/docker/hyena
target: /data
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
networks:
- elastic
networks:
elastic:
driver: bridge
volumes:
elasticsearch-data:
当我点击“调试”(F5) 时,VS 启动一切,我可以在 Docker Desktop 中看到容器正在运行,并且可以看到应用程序相互通信(即来自 Web 应用程序的日志出现在 Kibana 中)。
现在,当我停止 Visual Studio 调试时,我的 Web 应用程序无法再通过浏览器访问,但 ElasticSearch 和 Kibana 仍继续工作。
Docker 桌面和
docker container ls
命令都显示容器正在运行。
所以,我的问题是:
亲切的问候, 巴托斯
1.) 嗯。当您使用调试器工具时,它很可能会安装端口或附加“远程调试器”或线程。
2.) 如果端口由 IDE 管理,那么如果您在 IDE 中停止调试器,该端口将不可用
3.)它可能在应用程序设置中以这种方式配置,以关闭容器/卷,无论是否悬空