2015-06-21 16:41:38 -04:00
|
|
|
# logs
|
|
|
|
|
2023-01-06 13:04:05 -05:00
|
|
|
<!---MARKER_GEN_START-->
|
2016-07-07 14:43:18 -04:00
|
|
|
Fetch the logs of a container
|
|
|
|
|
2023-01-06 13:04:05 -05:00
|
|
|
### Aliases
|
|
|
|
|
|
|
|
`docker container logs`, `docker logs`
|
|
|
|
|
|
|
|
### Options
|
|
|
|
|
|
|
|
| Name | Type | Default | Description |
|
|
|
|
|:---------------------|:---------|:--------|:---------------------------------------------------------------------------------------------------|
|
2024-07-03 02:29:57 -04:00
|
|
|
| `--details` | `bool` | | Show extra details provided to logs |
|
|
|
|
| `-f`, `--follow` | `bool` | | Follow log output |
|
2023-01-06 13:04:05 -05:00
|
|
|
| `--since` | `string` | | Show logs since timestamp (e.g. `2013-01-02T13:23:37Z`) or relative (e.g. `42m` for 42 minutes) |
|
|
|
|
| `-n`, `--tail` | `string` | `all` | Number of lines to show from the end of the logs |
|
2024-07-03 02:29:57 -04:00
|
|
|
| `-t`, `--timestamps` | `bool` | | Show timestamps |
|
2023-01-06 13:04:05 -05:00
|
|
|
| [`--until`](#until) | `string` | | Show logs before a timestamp (e.g. `2013-01-02T13:23:37Z`) or relative (e.g. `42m` for 42 minutes) |
|
|
|
|
|
|
|
|
|
|
|
|
<!---MARKER_GEN_END-->
|
2015-06-21 16:41:38 -04:00
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
## Description
|
|
|
|
|
2015-06-21 16:41:38 -04:00
|
|
|
The `docker logs` command batch-retrieves logs present at the time of execution.
|
|
|
|
|
2016-12-04 07:41:57 -05:00
|
|
|
For more information about selecting and configuring logging drivers, refer to
|
2024-08-11 10:43:21 -04:00
|
|
|
[Configure logging drivers](https://docs.docker.com/engine/logging/configure/).
|
2016-09-16 09:29:28 -04:00
|
|
|
|
2015-06-21 16:41:38 -04:00
|
|
|
The `docker logs --follow` command will continue streaming the new output from
|
|
|
|
the container's `STDOUT` and `STDERR`.
|
|
|
|
|
|
|
|
Passing a negative number or a non-integer to `--tail` is invalid and the
|
2015-07-03 09:50:06 -04:00
|
|
|
value is set to `all` in that case.
|
2015-06-21 16:41:38 -04:00
|
|
|
|
2023-08-25 08:10:40 -04:00
|
|
|
The `docker logs --timestamps` command will add an [RFC3339Nano timestamp](https://pkg.go.dev/time#RFC3339Nano)
|
2015-09-19 16:54:22 -04:00
|
|
|
, for example `2014-09-16T06:17:46.000000000Z`, to each
|
2015-10-29 13:51:36 -04:00
|
|
|
log entry. To ensure that the timestamps are aligned the
|
2015-06-21 16:41:38 -04:00
|
|
|
nano-second part of the timestamp will be padded with zero when necessary.
|
|
|
|
|
2016-04-08 12:15:08 -04:00
|
|
|
The `docker logs --details` command will add on extra attributes, such as
|
|
|
|
environment variables and labels, provided to `--log-opt` when creating the
|
|
|
|
container.
|
|
|
|
|
2015-06-21 16:41:38 -04:00
|
|
|
The `--since` option shows only the container logs generated after
|
|
|
|
a given date. You can specify the date as an RFC 3339 date, a UNIX
|
2015-10-29 13:51:36 -04:00
|
|
|
timestamp, or a Go duration string (e.g. `1m30s`, `3h`). Besides RFC3339 date
|
|
|
|
format you may also use RFC3339Nano, `2006-01-02T15:04:05`,
|
2023-01-16 08:03:26 -05:00
|
|
|
`2006-01-02T15:04:05.999999999`, `2006-01-02T07:00`, and `2006-01-02`. The local
|
2015-10-29 13:51:36 -04:00
|
|
|
timezone on the client will be used if you do not provide either a `Z` or a
|
|
|
|
`+-00:00` timezone offset at the end of the timestamp. When providing Unix
|
|
|
|
timestamps enter seconds[.nanoseconds], where seconds is the number of seconds
|
|
|
|
that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap
|
|
|
|
seconds (aka Unix epoch or Unix time), and the optional .nanoseconds field is a
|
|
|
|
fraction of a second no more than nine digits long. You can combine the
|
|
|
|
`--since` option with either or both of the `--follow` or `--tail` options.
|
2017-11-14 10:43:35 -05:00
|
|
|
|
|
|
|
## Examples
|
|
|
|
|
2023-01-06 13:28:29 -05:00
|
|
|
### <a name="until"></a> Retrieve logs until a specific point in time (--until)
|
2017-11-14 10:43:35 -05:00
|
|
|
|
|
|
|
In order to retrieve logs before a specific point in time, run:
|
|
|
|
|
2021-08-21 08:54:14 -04:00
|
|
|
```console
|
2017-11-14 10:43:35 -05:00
|
|
|
$ docker run --name test -d busybox sh -c "while true; do $(echo date); sleep 1; done"
|
|
|
|
$ date
|
|
|
|
Tue 14 Nov 2017 16:40:00 CET
|
2020-09-28 07:58:40 -04:00
|
|
|
$ docker logs -f --until=2s test
|
2017-11-14 10:43:35 -05:00
|
|
|
Tue 14 Nov 2017 16:40:00 CET
|
|
|
|
Tue 14 Nov 2017 16:40:01 CET
|
|
|
|
Tue 14 Nov 2017 16:40:02 CET
|
2020-04-19 09:43:08 -04:00
|
|
|
```
|