Search code examples
dockerwindows-10

Windows 10 and Docker container logs / Docker Logging driver


I'm using Windows 10 with native docker installation.

I'm looking for the location where docker save the containers logs.
In Linux, the Docker containers log files are in this location:

/var/lib/docker/containers/container-id/container-id-json.log

But where can I find it in windows 10 ?


Solution

  • Check first if those logs are in (as suggested here):

    C:\ProgramData\docker\containers\[container_ID]\[container_ID]-json.log
    

    2019: The Docker C:\ProgramData\docker is the Root Dir reported by docker info.
    2020: DOCKER_ARTIFACTS == \\wsl$\docker-desktop-data\data\docker
    (as mentioned in the comments by Ricardo Rivaldo, for Docker version 20.10+)
    (See also "Locating data volumes in Docker Desktop (Windows)")

    Regarding Docker Linux through Hyper-v, check if "How to Delete Docker Container Log Files (Windows or Linux) " can help (from Jon Gallant):

    1. Run docker inspect to find your Docker log file location
    2. Find the “Docker Root Dir” Value, mine is /var/lib/docker

    Your docker log file path should be /var/lib/docker, but if it isn’t, then change it in the command below.

    find /var/lib/docker/containers/ -type f -name "*.log"
    

    https://blog.jongallant.com/2017/11/delete-docker-container-log-files/000330.png

    The command you see in this image is based on "How to SSH into the Docker VM (MobyLinuxVM) on Windows"

    We aren’t technically going to SSH into the VM, we’ll create a container that has full root access and then access the file system from there.

    • Get container with access to Docker Daemon
    • Run container with full root access
    • Switch to host file system

    Open a Command prompt and execute the following:

    docker run --privileged -it -v /var/run/docker.sock:/var/run/docker.sock jongallant/ubuntu-docker-client 
    docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -v /:/host alpine /bin/sh
    chroot /host
    

    Execute the find command there, and you should find the logs.