无法查看ASP NET Core容器的日志

时间:2018-12-11 14:11:04

标签: docker logging asp.net-core

你好,我有以下问题:

我有一台ASP .NET Core服务器,它是docker化的,并在带有docker-compose的容器中运行。我通过postman向我的服务器发送请求,并得到500-internal server error

我尝试过:

  • docker attach myserver,控制台中什么也没得到。
  • docker logs myserver我只会得到初始日志(启动)。
  • telnet hostname port,看来可以正常连接,但我不知道如何创建请求。

我如何才能使用console服务器的ASP .NET Core

docker-compose

version: '3.3'
services:
    db:
      image: redis:4.0.5-alpine
      container_name: redis0

      networks: 
        - redis-net
      ports:
        - 6381:6379

    backend:
      image: server
      container_name: server0
      build: ./Server
      command: ["dotnet","Server.dll"]
      depends_on:
        - db
      ports:
        - 9400:9300
      networks:
        - redis-net

networks:
    redis-net:

dockerfile (用于服务器)

FROM microsoft/dotnet:2.1-aspnetcore-runtime 
WORKDIR /app
COPY ./publish /app
EXPOSE 9300

Startup.cs

public static IWebHostBuilder CreateWebHostBuilder(string[] args) {
            string port="9300";
            var builder = new WebHostBuilder();
            builder.UseStartup<Startup>();
            var url =$"http://0.0.0.0:{port.ToString()}/";//Address.Default.ToUrl();
            Debug.WriteLine(url);
            builder.UseKestrel().UseUrls(url);
            return builder;

        }

1 个答案:

答案 0 :(得分:3)

  • 配置您的.net核心应用以将日志打印到控制台

    E.g. Console.WriteLine("Some application log");

  • 重建并运行容器

    docker-compose build

    docker-compose up

  • 使用

    获取正在运行的container-id容器的server

    docker ps

  • 在另一个命令窗口中运行此命令以跟踪日志

    docker logs --follow <container-id>

  • 运行此命令进入容器的bash外壳

    docker exec -it <container-id> bash