如何在Docker中列出容器
时间:2020-03-05 15:25:19 来源:igfitidea点击:
Docker是一个容器化平台,可让我们快速构建,测试和部署应用程序,作为可在几乎任何地方运行的可移植自给自足的容器。
它是事实上的容器部署标准,对于DevOps工程师及其持续的集成和交付渠道而言,它是必不可少的工具。
在本文中,我们将说明如何列出Docker容器。
列出Docker容器
用于列出容器的Docker命令采用以下形式:
docker container ls [options]
1.13之前的旧Docker版本正在使用不同的命令来列出容器:
docker ps [options]
上面的命令在较新的Docker版本中仍然受支持,其中'ps'命令是'container ls'的别名。
要列出正在运行的容器,请不带任何选择地执行“ docker container ls”命令:
docker container ls
输出将如下所示:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c8bded53da86 postgres "docker-entrypoint.s…" 2 hours ago Up 2 hours 5432/tcp pg 571c3a115fcf redis "docker-entrypoint.s…" 4 hours ago Up 4 hours 6379/tcp cache 05ef6d8680ba nginx "nginx -g 'daemon of…" 2 hours ago Up 2 hours 80/tcp web
输出的每一行包括以下几列:
- “容器ID” –标识每个容器的唯一字母数字字符串。
- “镜像” –用于创建容器的Docker镜像。
- 'Command'-启动容器时执行的命令。
- '已创建'-容器的创建时间。
- '状态'–容器的状态。
- “端口”-容器的已发布端口。
- '名称'–容器的名称。
如果没有正在运行的容器,则仅显示标题行。
'-a','-all'选项告诉'docker container ls'打印所有容器的列表:
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b28cbaa91f15 couchbase "/entrypoint.sh couc…" 5 hours ago Exited (0) 3 hours ago db c8bded53da86 postgres "docker-entrypoint.s…" 2 hours ago Up 2 hours 5432/tcp pg 571c3a115fcf redis "docker-entrypoint.s…" 4 hours ago Up 4 hours 6379/tcp cache 05ef6d8680ba nginx "nginx -g 'daemon of…" 2 hours ago Up 2 hours 80/tcp web
默认情况下,长度超过指定限制的列将被截断。
使用'--no-trunc'选项禁用截断:
docker container ls --no-trunc
要仅显示容器的ID,请传递'-q','--quiet'选项:
docker container ls -q
c8bded53da86 571c3a115fcf 05ef6d8680ba
'--format'允许我们使用Go模板格式化输出。
例如,要仅打印容器的名称和状态(包括标题),请运行:
docker container ls --format 'table {{.Names}}\t{{.Status}}'
NAMES STATUS pg Up 2 hours cache Up 4 hours web Up 2 hours
使用'-s','--size'选项查看容器的大小:
docker container ls -s
每行将包含一个名为“ SIZE”的列,该列显示容器的大小:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE c8bded53da86 postgres "docker-entrypoint.s…" 2 hours ago Up 2 hours 5432/tcp pg 63B (virtual 394MB) 571c3a115fcf redis "docker-entrypoint.s…" 4 hours ago Up 4 hours 6379/tcp cache 0B (virtual 98.2MB) 05ef6d8680ba nginx "nginx -g 'daemon of…" 2 hours ago Up 2 hours 80/tcp web 2B (virtual 126MB)
“ --last”,“-n”选项告诉命令显示“ n”个最后创建的容器,包括所有状态。
例如,要查看最近创建的两个容器,可以运行:
docker container ls -n 2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b28cbaa91f15 couchbase "/entrypoint.sh couc…" 5 hours ago Exited (0) 3 hours ago db c8bded53da86 postgres "docker-entrypoint.s…" 2 hours ago Up 2 hours 5432/tcp pg
还有一个选项仅列出最新创建的容器'--latest','-l'与'-n 1'相同:
docker container ls -l
'--filter','-f'选项使我们可以基于某些条件来过滤输出。
例如,要仅查看状态为“退出”的容器,可以运行:
docker container ls -f "status=exited"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b28cbaa91f15 couchbase "/entrypoint.sh couc…" 5 hours ago Exited (0) 3 hours ago db
有关所有受支持的过滤器的列表,请参阅Docker文档。