Cobra allows for aliases to be defined for a command, but only allows these to be defined at the same level (for example, `docker image ls` as alias for `docker image list`). Our CLI has some commands that are available both as a top-level shorthand as well as `docker <object> <verb>` subcommands. For example, `docker ps` is a shorthand for `docker container ps` / `docker container ls`. This patch introduces a custom "aliases" annotation that can be used to print all available aliases for a command. While this requires these aliases to be defined manually, in practice the list of aliases rarely changes, so maintenance should be minimal. As a convention, we could consider the first command in this list to be the canonical command, so that we can use this information to add redirects in our documentation in future. Before this patch: docker images --help Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] List images Options: -a, --all Show all images (default hides intermediate images) ... With this patch: docker images --help Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] List images Aliases: docker image ls, docker image list, docker images Options: -a, --all Show all images (default hides intermediate images) ... Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
3.1 KiB
title, description, keywords
title | description | keywords |
---|---|---|
logs | The logs command description and usage | logs, retrieve, docker |
logs
Usage: docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Aliases:
docker container logs, docker logs
Options:
--details Show extra details provided to logs
-f, --follow Follow log output
--help Print usage
--since string Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
--until string Show logs before timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
-n, --tail string Number of lines to show from the end of the logs (default "all")
-t, --timestamps Show timestamps
Description
The docker logs
command batch-retrieves logs present at the time of execution.
Note
This command is only functional for containers that are started with the
json-file
orjournald
logging driver.
For more information about selecting and configuring logging drivers, refer to Configure logging drivers.
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
value is set to all
in that case.
The docker logs --timestamps
command will add an RFC3339Nano timestamp
, for example 2014-09-16T06:17:46.000000000Z
, to each
log entry. To ensure that the timestamps are aligned the
nano-second part of the timestamp will be padded with zero when necessary.
The docker logs --details
command will add on extra attributes, such as
environment variables and labels, provided to --log-opt
when creating the
container.
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
timestamp, or a Go duration string (e.g. 1m30s
, 3h
). Besides RFC3339 date
format you may also use RFC3339Nano, 2006-01-02T15:04:05
,
2006-01-02T15:04:05.999999999
, 2006-01-02Z07:00
, and 2006-01-02
. The local
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.
Examples
Retrieve logs until a specific point in time (--until)
In order to retrieve logs before a specific point in time, run:
$ 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
$ docker logs -f --until=2s test
Tue 14 Nov 2017 16:40:00 CET
Tue 14 Nov 2017 16:40:01 CET
Tue 14 Nov 2017 16:40:02 CET