Skip to main content

[SOLVED] Where is the Docker daemon log? - docker

[SOLVED] Finding the Docker Daemon Log: A Simple Guide

We need to know where the Docker daemon log is. This log helps us fix problems and watch our Docker containers. The Docker daemon manages containers, images, networks, and volumes. So, checking its log files gives us useful information about how things are working and if there are any problems. In this chapter, we will look at different ways to find and see the Docker daemon log on Linux, Windows, and macOS.

Solutions We Will Talk About:

  • Solution 1 - Finding Docker Logs on Linux
  • Solution 2 - Checking Docker Logs on Windows
  • Solution 3 - Accessing Docker Logs on macOS
  • Solution 4 - Using Journalctl to See Docker Logs
  • Solution 5 - Setting Up Docker Log Options
  • Solution 6 - Using Docker CLI to See Logs

When we learn these methods, we can manage our Docker environment better. We can also fix problems that might come up.

If we want more help with Docker, these links can be useful:

Let’s start with each solution. We will learn how to find the Docker daemon log and make our Docker experience better!

Solution 1 - Locating Docker Logs on Linux

To find the Docker daemon log on a Linux system, we usually check the systemd journal or look for log files in certain folders. The place where logs are stored can change based on how we installed Docker and which Linux version we are using.

  1. Default Log File Location: Normally, Docker saves its logs in the /var/log/syslog or /var/log/messages file. This depends on your Linux version. We can see the logs using the cat, less, or tail command. For example, to see the last 100 lines of the syslog, we can run:

    sudo tail -n 100 /var/log/syslog

    Or if our system logs to messages:

    sudo tail -n 100 /var/log/messages
  2. Using Journalctl: If our system uses systemd, which is common in newer versions like Ubuntu and CentOS, we can get Docker logs with journalctl. This command helps us see logs related to the Docker service:

    sudo journalctl -u docker.service

    To follow the logs in real-time, we can use:

    sudo journalctl -u docker.service -f
  3. Configuration File Check: If we set up Docker to log in a different file, we can check the Docker daemon configuration file. It is usually at /etc/docker/daemon.json. We need to look for the log-driver option. This option might tell us about a different logging driver or log place. Here is an example setup:

    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "3"
      }
    }
  4. Inspecting Docker Containers: We can also check the logs of single containers using the docker logs command. To see the logs of a specific container, we do:

    docker logs <container_id>

    Here, we replace <container_id> with the real ID or name of the container.

By using these ways, we can find and watch Docker daemon logs on our Linux system. For more details about logging settings, we can look at the Docker daemon configuration.

Solution 2 - Checking Docker Logs on Windows

On Windows, we can check Docker daemon logs in a few ways. It depends on how we installed Docker, either Docker Desktop or Docker Engine. Here are simple steps to check Docker logs.

For Docker Desktop

  1. Accessing Logs via GUI:

    • First, we right-click on the Docker icon in the system tray.
    • Then, we select “Troubleshoot”.
    • Next, we click on “Get support” to see the logs. A dialog will open where we can view the logs from Docker.
  2. Using PowerShell:

    • We open PowerShell as an administrator.

    • To get the Docker daemon logs, we can check the Windows Event Viewer:

      Get-WinEvent -LogName 'Application' | Where-Object { $_.ProviderName -eq 'Docker' }
    • This command will show logs only for Docker.

  3. Log File Location:

    • Docker Desktop logs are saved at:

      %LOCALAPPDATA%\Docker\log.txt
    • We can go to this path in File Explorer or use this command:

      notepad $env:LOCALAPPDATA\Docker\log.txt

For Docker Engine (Docker Toolbox or Docker installed via WSL)

  1. Using Command Prompt or PowerShell:

    • If we installed Docker with Docker Toolbox, we usually find logs in:

      C:\ProgramData\Docker\logs
    • To see the logs, we can use:

      Get-Content "C:\ProgramData\Docker\logs\*.log" -Tail 100 -Wait
  2. Using WSL:

    • If Docker runs in a WSL distribution, we can get logs from the WSL terminal:

      sudo journalctl -u docker.service
    • This command gets logs for the Docker service controlled by systemd.

Additional Note

If we have problems accessing logs or if the logs do not give enough info, we should check the settings in Docker. We can also look at the official Docker documentation for more help.

Solution 3 - Accessing Docker Logs on macOS

On macOS, we can access Docker daemon logs in different ways. It depends on how we install Docker. If we use Docker Desktop, we can get the logs directly from the app or through the terminal.

Method 1: Using Docker Desktop

  1. Open Docker Desktop on our macOS.
  2. Click on the Docker icon in the menu bar.
  3. Select Troubleshoot from the dropdown menu.
  4. Click on Get Support. This shows the logs collected from Docker, including the daemon logs.

Method 2: Accessing Logs via Terminal

To see the Docker daemon logs using the terminal, we follow these steps:

  1. Open the Terminal app.

  2. Use this command to view the logs:

    tail -f /var/log/docker.log

    The location of the Docker log file can change based on our Docker setup. If we do not find it here, we can check the default Docker settings.

Method 3: Using the docker logs Command

If we want to see the logs of a specific container that is running on Docker, we can use the docker logs command. For example:

docker logs <container_id_or_name>

We need to replace <container_id_or_name> with the real ID or name of the container we want to check.

Additional Information

  • If we have problems accessing logs or the Docker daemon, we should check the Docker daemon configuration file. It is located at /etc/docker/daemon.json. This file may have log-level settings that affect what is in the logs.
  • If we use different logging drivers, the log files may go to different places. We can read about how to set up Docker log options here.

By using these methods, we can easily access and troubleshoot Docker logs on macOS.

Solution 4 - Using Journalctl to View Docker Logs

If we are using a system with systemd, we can use the journalctl command to see the Docker daemon logs. The Docker service logs are part of the system journal. This helps us access them easily. Here is how we can do it:

  1. View All Docker Logs: To see all logs related to the Docker daemon, we run this command in the terminal:

    journalctl -u docker.service

    This command gets the logs from the docker.service. It gives us a full view of the Docker daemon’s activity.

  2. Filtering Logs by Time: We can filter logs by time to focus on a certain period. For example, to see logs from the last hour, we can use:

    journalctl -u docker.service --since "1 hour ago"

    We can change the time frame if we need to. We can use formats like “YYYY-MM-DD HH:MM:SS” for more specific time.

  3. Follow Docker Logs in Real-Time: If we want to check the logs in real-time, like the tail -f command, we can use:

    journalctl -u docker.service -f

    This command keeps the terminal open and shows new log entries as they come.

  4. Limiting Number of Lines: To limit the output to a certain number of lines, we can use the -n option. For example, to show the last 100 lines of logs:

    journalctl -u docker.service -n 100
  5. Viewing Logs with Priority Levels: If we want to see logs of a certain priority, we can use the -p option. For example, to see only error logs:

    journalctl -u docker.service -p err

Using journalctl is a good way to access Docker daemon logs. It helps us debug issues with Docker containers. For more detailed info on Docker logging options, we can check the Docker logging documentation.

By using journalctl, we can quickly fix issues and watch the Docker daemon’s behavior. This helps our containerized applications work well.

Solution 5 - Configuring Docker Log Options

We can manage Docker daemon logs better by changing Docker log options. This helps us to control how logs are saved. We can customize log drivers, limit log size, and manage log retention. We usually do this in the Docker daemon configuration file. On Linux systems, this file is found at /etc/docker/daemon.json.

Step 1: Create or Edit the Daemon Configuration File

If the file is not there, we can create it. Let’s open the file using a text editor we like:

sudo nano /etc/docker/daemon.json

Step 2: Specify Log Options

In the daemon.json file, we can set different log options. Here is an example that sets the logging driver to json-file, limits the log size to 10MB, and keeps 3 log files:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

Supported Log Drivers

Docker has many logging drivers we can use, like:

  • json-file: This is the default driver that logs to a local JSON file.
  • syslog: This sends logs to the syslog daemon.
  • journald: This logs directly to the systemd journal.
  • fluentd: This sends logs to a Fluentd service.
  • awslogs: This sends logs to Amazon CloudWatch.

We can learn more about these logging drivers in the Docker documentation.

Step 3: Restart Docker Daemon

After we edit the configuration, we must restart the Docker daemon. This makes the changes work:

sudo systemctl restart docker

Step 4: Verify the Configuration

To check if our changes worked, we can look at the Docker info:

docker info | grep "Logging Driver"

This command should show the log driver we set.

Additional Log Options

We can also add other log options based on the driver we choose. For example, if we use the syslog driver, we can set options like this:

"log-opts": {
  "syslog-address": "tcp://localhost:514",
  "tag": "{{.Name}}"
}

This helps us send logs to a central logging system. It makes log management easier.

For more information on Docker log setup and management, we can check the Docker logging documentation.

Solution 6 - Using Docker CLI to Access Logs

We can access the Docker daemon logs using the Docker Command Line Interface, or CLI. This way is good for getting logs fast without looking for log files directly. The docker logs command helps us see the logs of a specific container.

Accessing Container Logs

To see the logs of a running or stopped container, we use this command:

docker logs <container_id_or_name>

We need to replace <container_id_or_name> with the real ID or name of the container we want to check.

Options for the docker logs Command

The docker logs command has some options that help us filter and format the logs:

  • Follow Logs: If we want to see logs in real-time, we can use the -f option:

    docker logs -f <container_id_or_name>
  • Show Timestamps: If we want to add timestamps to the log output, we can use the --timestamps option:

    docker logs --timestamps <container_id_or_name>
  • Limit Lines: If we only want to see a certain number of lines from the logs, we can use the --tail option:

    docker logs --tail 100 <container_id_or_name>
  • Since Option: If we want logs since a certain time, we can use the --since option:

    docker logs --since="2023-01-01T00:00:00" <container_id_or_name>

Example Use Case

If we have a container named my_app, we can get its logs with this command:

docker logs my_app

If we want to follow the logs as they come, we use:

docker logs -f my_app

This command is good for debugging and checking our application that runs in the Docker container.

Conclusion

Using the Docker CLI to get logs gives us an easy way to monitor our containers. For more advanced logging setups, we can look at Docker’s logging drivers and settings. We can find these in the Docker documentation. If we want to read more, check out this guide on Docker logging.

Conclusion

In this article, we looked at different ways to find the Docker daemon log on Linux, Windows, and macOS. It is important to know where these logs are. This helps us troubleshoot Docker better.

We also talked about tools like Journalctl and Docker CLI. These tools make it easier to access logs.

For more information, we can check our guides on how to assign more memory to Docker and how to configure Docker log options.

Comments