我正在寻找使用如下工具:
- grep
- sed
- 大王
与 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
我只是在寻找值容器标题下。
答案1
使用 awk,你可以使用以下命令跳过第一行(或记录)NR > 1
:
docker container ls | awk 'NR > 1 {print $1}'
但你不需要这样做。你可以docker
告诉格式化输出:
% docker container ls --format '{{.ID}}'
bd1299b0dd5a
8fcbcd67a843
答案2
您正在寻找的命令是tail -n +2
:
docker container ls | awk '{print $1}' | tail -n +2
解释这里(还有一个选项使用sed
——我想你必须尝试哪个是最快的)。
答案3
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