Как можно использовать AWK для вывода списка контейнеров Docker?

Я хочу использовать инструменты типа:

  • grep
  • sed
  • AWK

для работы с Docker.

Листинг контейнеров:

docker container ls | awk '{print $1}'

] Результаты:

CONTAINER
490e3d669259
a44230a617e1

Как я могу опустить «заголовок»?

Вот полный вывод для docker container ls , если это окажется полезным:

CONTAINER ID  IMAGE  COMMAND                 CREATED        STATUS        PORTS                                        NAMES
490e3d669259  jetty  "/docker-entrypoint.…"  3 minutes ago  Up 3 minutes  0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp  quirky_antonelli
a44230a617e1  jetty  "/docker-entrypoint.…"  4 minutes ago  Up 4 minutes  8080/tcp                                     goofy_hamilton

Я просто ищу значения под заголовком контейнера.

3
задан 5 August 2020 в 12:17

3 ответа

С awk вы можете пропустить первую строку (или запись), используя NR> 1 :

docker container ls | awk 'NR > 1 {print $1}'

Но вам это не нужно. Вы можете просто указать докеру форматировать вывод :

% docker container ls --format '{{.ID}}'
bd1299b0dd5a
8fcbcd67a843
22
ответ дан 11 August 2020 в 20:11

Docker дает вам больше контроля, так что вам фактически не нужно использовать вторую команду для пост-обработки. В этом случае вы можете просто использовать параметр - quiet | -q .

$ docker container ls -q
490e3d669259
a44230a617e1

Многие инструменты командной строки используют аналогичные соглашения, такие как - help , которые предоставляют более подробную информацию о параметрах использования , Вот результат выполнения команды docker container ls --help :

# docker container ls --help

Usage:  docker container ls [OPTIONS]

List containers

Aliases:
  ls, ps, list

Options:
  -a, --all             Show all containers (default shows just running)
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print containers using a Go template
  -n, --last int        Show n last created containers (includes all states) (default -1)
  -l, --latest          Show the latest created container (includes all states)
      --no-trunc        Don't truncate output
  -q, --quiet           Only display numeric IDs
  -s, --size            Display total file sizes
1
ответ дан 11 August 2020 в 20:11

Вы ищете команду tail -n +2 :

docker container ls | awk '{print $1}' | tail -n +2

Объяснение здесь (есть также вариант, использующий ] sed - думаю, вам нужно попробовать, какой из них самый быстрый).

3
ответ дан 11 August 2020 в 20:11

Другие вопросы по тегам:

Похожие вопросы: