如何排序或订购结果docker ps --format?

时间:2017-09-12 09:54:13

标签: docker

使用var owldata = angular.element( '<div class="item"><div class="ifl-removepic" ng-click="deleteDocument("'+e.target.result+'");"></div><img src="' + e.target.result + '"></div>' ); owldata = $compile(owldata)($scope); angular.element(some_root).append(owldata);

时,我找不到任何方式来订购我的搜索结果

在我的情况下,我想通过.Ports

订购
docker ps

如何订购结果?

3 个答案:

答案 0 :(得分:8)

如果仅按输出列排序,则可以使用以下内容:

 docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" | (read -r; printf "%s\n" "$REPLY"; sort -k 3 )

我还添加了一个代码,用于跳过表头并仅排序ps输出数据。

答案 1 :(得分:5)

格式和订单 docker ps

列出容器

docker ps

<强>格式

docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" | (read -r; printf "%s\n" "$REPLY"; sort -k 3 )

<强>概要

docker ps [--format="TEMPLATE"]

--format="TEMPLATE"
  Pretty-print containers using a Go template.
  Valid placeholders:
     .ID - Container ID
     .Image - Image ID
     .Command - Quoted command
     .CreatedAt - Time when the container was created.
     .RunningFor - Elapsed time since the container was started.
     .Ports - Exposed ports.
     .Status - Container status.
     .Size - Container disk size.
     .Names - Container names.
     .Labels - All labels assigned to the container.
     .Label - Value of a specific label for this container. For example {{.Label "com.docker.swarm.cpu"}}
     .Mounts - Names of the volumes mounted in this container.

使用命令显示容器

docker ps --format "{{.ID}}: {{.Command}}"

在表格中显示带有标签的容器

docker ps --format "table {{.ID}}\t{{.Labels}}"

在表格中显示带有节点标签的容器

docker ps --format 'table {{.ID}}\t{{(.Label "com.docker.swarm.node")}}'

答案 2 :(得分:4)

我构建了一个docker ps pretty print函数,可以将其放入您的.bash_profile.bashrc文件中,该文件的工作原理类似于docker ps的别名(带有颜色输出)。 @art-rock-guitar-superhero 的建议显示了如何排序,但是我已经包含了此答案,因为每次键入--format选项并将其管道输送到sort时都有些乏味。

function docker () {
    if [[ "$@" == "ps -p" ]]; then
        command docker ps --all --format "{{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}" \
            | (echo -e "CONTAINER_ID\tNAMES\tIMAGE\tPORTS\tSTATUS" && cat) \
            | awk '{printf "\033[1;32m%s\t\033[01;38;5;95;38;5;196m%s\t\033[00m\033[1;34m%s\t\033[01;90m%s %s %s %s %s %s %s\033[00m\n", $1, $2, $3, $4, $5, $6, $7, $8, $9, $10;}' \
            | column -s$'\t' -t \
            | awk 'NR<2{print $0;next}{print $0 | "sort --key=2"}'
    else
        command docker "$@"
    fi
}

用法:$ docker ps -p

编辑我从@BrianVosburgh的评论中添加了建议。另外,我一直忘记键入-p,所以我将此功能的标志切换为-a,这是我对docker ps的常规用法。