代码之家  ›  专栏  ›  技术社区  ›  Bartosz

Visual Studio Docker Compose-调试会话结束后停止并删除容器

  •  0
  • Bartosz  · 技术社区  · 4 年前

    我有一个ASP.NET我在ElasticSearch和Kibana中添加了日志记录的核心web应用程序。
    我在Windows主机上运行它,容器是Linux。

    docker compose文件设置为首先启动弹性搜索,然后启动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:
    

    当我点击Debug(F5)时,VS启动了一切,我可以在Docker桌面上看到容器正在运行,我可以看到应用程序彼此通信(即web应用程序的日志显示在Kibana中)。

    enter image description here

    现在,当我停止visualstudio调试时,我的webapp不再可以通过浏览器访问,但是ElasticSearch和Kibana都继续工作。

    docker container ls 命令all显示容器正在运行。

    所以,我的问题是:

    1. 为什么它只发生在我的网络应用,而不是在Kibana或ElasticSearch上?
    2. 在调试会话之后,如何让VS停止并删除这些容器?

    谨致问候,

    0 回复  |  直到 4 年前