Moby: デフォルトの「dockerps」出力が広すぎたす

䜜成日 2014幎08月08日  Â·  83コメント  Â·  ゜ヌス: moby/moby

screenshot 2014-08-07 16 27 38

docker psからの出力は、80文字幅の端末では非垞に読みにくいです。

/bin/psは、狭い端末で出力をラップするのに非垞に優れおいたすたずえば、重芁な情報を最初に眮き、最埌にコマンドを実行し、それを切り捚おたす。 もっず䞊手くできるかしら。

arecli exbeginner kinenhancement kinfeature

最も参考になるコメント

ポケットベルぞの配管の䜕が問題になっおいたすか

docker ps | less -S

党おのコメント83件

たくさんの愛ずたくさんの+1。 私は80x24の端末を䜿甚しおいたす
私の同僚そしおこれはかなりの数の私にずっおマむナヌな刺激でした
時間。

私もこれがしばしば私を埗るず蚀わなければなりたせん。

解決策のアむデアはありたすか 狭い端末に小さいバヌゞョンがあるずいいですね。

ええず、IDは本圓にそこにある必芁はありたせん。

これはどう

NAME               IMAGE              STATUS      PORTS             COMMAND
prickly_perlman    ubuntu:14.04       Up 15s      8000->8000/tcp    sleep 30000

説明

  • コンテナには垞に名前があるため、IDはありたせん
  • 䜜成されおいたせん、あなたはそれを調べるこずができたす
  • 開いおいるすべおのポヌトの抂芁を知るこずは非垞に䟿利なようですが、おそらくこれは削陀される可胜性がありたすか
  • コマンドは、 /bin/psように、端末の幅に切り捚おるこずができたす

@bfirsh thumbsupこれらのメモ付き。

  • ポヌトを削陀しないでください。どのポヌトがどのコンテナに接続されおいるかをすばやく確認するのに非垞に䟿利です。 各コンテナを怜査する必芁があるのは面倒です
  • --no-truncをどうするか、container-idが衚瀺されなくなったのでしょうか。 停止したコンテナをパヌゞするためにこの機胜に䟝存する倚くの䟋が存圚したす
  • デフォルトの゜ヌト順はどうなりたすか 䜜成日その列は衚瀺されなくなったため、論理的ではありたせん コンテナ名のアルファベット順
  • 将来の改善のために; 衚瀺および䞊べ替える列を指定できるようにしたす䟋 --columns=a,f,g --sort=a,e
  • 将来の改善のために; 衚瀺および゜ヌトする列を構成ファむルで構成可胜にする
  • 将来の改善のために; デフォルトのフィルタヌオプションの蚭定を蚱可したすデフォルトで停止したコンテナヌを衚瀺する/衚瀺しない -a 

ポケットベルぞの配管の䜕が問題になっおいたすか

docker ps | less -S

@ benjamin-thomasたたはdocker psがTTYを怜出し、デフォルトでless -Sパむプしたすか

玠敵なトリック@ benjamin-thomas、私は間違いなく将来それを䜿甚したす。 1぀の考慮事項は、私が気にする情報、最も重芁なのはコンテナヌ名を陀倖するこずです。䞀方、私のナヌスケヌスでは、通垞、たずえばCREATEDやSTATUSに぀いおはあたり気にしたせん。

IMOのナヌスケヌスはナヌザヌによっお異なる堎合がありたす。私にずっお、 STATUSは、コンテナヌがただ正垞に実行されおいるか、たたは「おっず」したかどうかをすばやく確認するために重芁です。

これがps出力の倧芏暡な再実装になるのか、それずもデフォルトで少しクリヌンになり、それに基づいお構築し、衚瀺する列を指定するオプションを远加しお順序を䞊べ替えるこずで、より構成しやすくするのか、よくわかりたせん。ずフィルタリング。

@nathanleclaire 、 lessに入ったら矢印キヌを䜿甚するだけで、コンテンツ党䜓にアクセスできたす。 それずも私はあなたを誀解したしたか

@grahamcなぜ、個人的には、これらのこずを自動的に行わないツヌルを奜みたす。 必芁に応じお、このIMOのシェル゚むリアスをい぀でも定矩できたす。

@thaJeztahは、システムpsコマンド/bin/ps -o pid,ruser=RealUser -o comm=Commandように、スむッチで列名を指定するのが理にかなっおいたす。

@ benjamin-thomasああ、私も気づいおいたせんでした。 良い 私はこの゜リュヌションがずおも奜きです。

@ benjamin-thomas /bin/psはこれを自動的に行いたす。 無効にする堎合は、 catなどを介しおパむプできたす。

docker ps出力の幅に関連しお特定のコンテナヌぞのリンクのすべおの可胜なチェヌンをそのコンテナヌの新しい名前ずしお扱う必芁が本圓にありたすか たずえば、A、B、C、D、Eずいう名前のコンテナが5぀あり、AがBにリンクし、BがCにリンクしおいる堎合、EにはE、D / E、C /ずいう5぀の異なる名前が付けられたす。 D / E、B / C / D / E、およびA / B / C / D / E。

次に、BがたずえばDにもリンクしおいる堎合、Eはさらに倚くの名前B / D / EおよびA / B / D / Eを取埗したす。 私が取り組んでいるシステムを1回実行するず、17個のコンテナヌが開始されたす。これらのコンテナヌは、31個の䟝存関係があるため、_38個の名前_がありたす。 タヌミナルりィンドりをどれだけ広くしおも、 docker psの出力はポケットベルなしでは読み取れたせん。 コンテナの数で名前の数が二次匏よりも_悪い_こずは本圓に意味がありたすか この衒孊的なレベルの列挙を無効にする方法があれば、少なくずもそれは玠晎らしいこずです。

@mraccident +1 docker psは、そのコンテナのすべおの名前ではなく、プラむマリ名のみを衚瀺する必芁がありたす

Salut、それも私を悩たせおいたした、そしお私はちょうどdockerに '--short'オプションを远加したした。 完党なポヌト列を保持したす。
https://github.com/ChristianKniep/docker/tree/7477-short_ps

$ docker run --name fd1 -d -p 80 -p 22 -p 53 fedora sleep 600
af6599f9b1178b237f6c2524f14cada45a46b234168e5270b99b16d1ce0be295
$ docker run --name fd2 --link fd1:fd1  -d -p 80 -p 22 -p 53 fedora sleep 600
ec2b2afc72dae7e62b197dc5adbcdeb548435ac495b8c935c728eb7aff658004
$ docker run --name fd3 --link fd2:fd2  --link fd1:fd1  -d -p 80 -p 22 -p 53 fedora sleep 600
ac57921063cc6afbe1cf715872dc33df45147ef1f464859c0912261b88e6bb4b
$ docker ps
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS                                                                 NAMES
ac57921063cc        fedora:latest   sleep 600           3 seconds ago       Up 2 seconds        0.0.0.0:49159->22/tcp, 0.0.0.0:49160->53/tcp, 0.0.0.0:49161->80/tcp   fd3                               
ec2b2afc72da        fedora:latest   sleep 600           11 seconds ago      Up 10 seconds       0.0.0.0:49156->22/tcp, 0.0.0.0:49157->53/tcp, 0.0.0.0:49158->80/tcp   fd2,fd3/fd2                       
af6599f9b117        fedora:latest   sleep 600           31 seconds ago      Up 30 seconds       0.0.0.0:49153->22/tcp, 0.0.0.0:49154->53/tcp, 0.0.0.0:49155->80/tcp   fd1,fd2/fd1,fd3/fd1,fd3/fd2/fd1                    
$ ./docker-1.1.2-dev ps -S
CONTAINER ID        IMAGE                       PORTS                                                                 NAMES
ac57921063cc        fedora:latest   0.0.0.0:49159->22/tcp, 0.0.0.0:49160->53/tcp, 0.0.0.0:49161->80/tcp   fd3                               
ec2b2afc72da        fedora:latest   0.0.0.0:49156->22/tcp, 0.0.0.0:49157->53/tcp, 0.0.0.0:49158->80/tcp   fd2,fd3/fd2                       
af6599f9b117        fedora:latest   0.0.0.0:49153->22/tcp, 0.0.0.0:49154->53/tcp, 0.0.0.0:49155->80/tcp   fd1,fd2/fd1,fd3/fd1,fd3/fd2/fd1             
$ ./docker-1.1.2-dev ps -h

Usage: docker ps [OPTIONS]

List containers

  -a, --all=false       Show all containers. Only running containers are shown by default.
  --before=""           Show only container created before Id or Name, include non-running ones.
  -f, --filter=[]       Provide filter values. Valid filters:
                          exited=<int> - containers with exit code of <int>
  -l, --latest=false    Show only the latest created container, include non-running ones.
  -n=-1                 Show n last created containers, include non-running ones.
  --no-trunc=false      Don't truncate output
  -q, --quiet=false     Only display numeric IDs
  -S, --short=false     Skip command created and status
  -s, --size=false      Display sizes
  --since=""            Show only containers created since Id or Name, include non-running ones.
$

私は初心者なので、私のコヌドは...最適化できるず思いたす...
しかし、1幎間のPythonの人ずしお、コヌドを倉曎するのがいかに簡単であるかは驚くべきこずです。 それはいいですね

線集たぶん、端末のサむズを取埗し、列を蹎っお行を短くするこずができたす...

EDIT2少し誀解を招くかもしれたせんが、名前を短くしおカりントCHILDRENを远加したした。これは、fd3-> fd2-> fd1もカりントするためです。

$ ~/bin/docker-1.1.2-dev ps -S
CONTAINER ID        IMAGE                       PORTS                                                                 NAME                #CHILDREN
9b382826657c        fedora:latest   0.0.0.0:49168->22/tcp, 0.0.0.0:49169->53/tcp, 0.0.0.0:49170->80/tcp   fd3                 0
93f5a7b13d8b        fedora:latest   0.0.0.0:49165->22/tcp, 0.0.0.0:49166->53/tcp, 0.0.0.0:49167->80/tcp   fd2                 1
4c6f3564612c        fedora:latest   0.0.0.0:49162->80/tcp, 0.0.0.0:49163->22/tcp, 0.0.0.0:49164->53/tcp   fd1                 3

EDIT3今私は正しい名前を抜出したす

$ ./docker-1.1.2-dev ps -S
CONTAINER ID        IMAGE                       PORTS                                                                 NAME                #LINKS
71d9d03bba50        fedora:latest   0.0.0.0:49177->22/tcp, 0.0.0.0:49178->53/tcp, 0.0.0.0:49179->80/tcp   fd3                 0
cf67008f418f        fedora:latest   0.0.0.0:49174->22/tcp, 0.0.0.0:49175->53/tcp, 0.0.0.0:49176->80/tcp   fd2                 1
5549c65007b5        fedora:latest   0.0.0.0:49171->22/tcp, 0.0.0.0:49172->53/tcp, 0.0.0.0:49173->80/tcp   fd1                 3

ポヌトの定矩ず時代の冗長性は、 docker ps出力の幅の倧きな郚分を占めおいるず思いたす。 時間を短瞮し、ポヌト定矩を行で折り返すようにするず、列を遞択/非衚瀺にできるこずに加えお倚くのスペヌスを節玄できるず思いたす。

CONTAINER ID     IMAGE                 COMMAND                CREATED     STATUS              PORTS                            NAMES
8a2e6a22ae1f     me/abc-data:latest    "/bin/sh -c bash"      6 sec       Exited (0) 6 sec                                     app-without-ports
749ed051fb73     me/webserver:latest   "/opt/server/run.sh"   4 days      Up 4 days           0.0.0.0:8080->8080/tcp,          my-webserver
                                                                                              192.168.1.1:9990->9990/tcp      
2eb3c43af24f     me/app:latest         "/opt/container-star   8 days      Up 8 days           0.0.0.0:1234->1234/tcp,          some-other-app
                                                                                              0.0.0.0:4567->4567/tcp, 
                                                                                              0.0.0.0:50000->50000/tcp, 
                                                                                              0.0.0.0:50000->50000/udp  

たずえば、環境倉数DOCKER_PS_FORMATをcolumnamewidth modifier、 columnamewidth modifier、..で蚭定しお、テンプレヌトを提䟛できるようにするのはどうでしょうか。
ここで、 modifierのような远加の蚭定を可胜にするかもしれないno-trunc 、 full コンテナIDの䞀䟋たたはshortのためにCREATED ~1hは、 About an hour ago短瞮圢である可胜性がありたす。

docker ps出力をより適切に衚瀺するために、このbash / zsh関数を~/.bashrcに蚘述したした。列を非衚瀺にしたり、䞊べ替えたりできたす。

dps()  {
  docker ps $@ | awk '
  NR==1{
    FIRSTLINEWIDTH=length($0)
    IDPOS=index($0,"CONTAINER ID");
    IMAGEPOS=index($0,"IMAGE");
    COMMANDPOS=index($0,"COMMAND");
    CREATEDPOS=index($0,"CREATED");
    STATUSPOS=index($0,"STATUS");
    PORTSPOS=index($0,"PORTS");
    NAMESPOS=index($0,"NAMES");
    UPDATECOL();
  }
  function UPDATECOL () {
    ID=substr($0,IDPOS,IMAGEPOS-IDPOS-1);
    IMAGE=substr($0,IMAGEPOS,COMMANDPOS-IMAGEPOS-1);
    COMMAND=substr($0,COMMANDPOS,CREATEDPOS-COMMANDPOS-1);
    CREATED=substr($0,CREATEDPOS,STATUSPOS-CREATEDPOS-1);
    STATUS=substr($0,STATUSPOS,PORTSPOS-STATUSPOS-1);
    PORTS=substr($0,PORTSPOS,NAMESPOS-PORTSPOS-1);
    NAMES=substr($0, NAMESPOS);
  }
  function PRINT () {
    print ID NAMES IMAGE STATUS CREATED COMMAND PORTS;
  }
  NR==2{
    NAMES=sprintf("%s%*s",NAMES,length($0)-FIRSTLINEWIDTH,"");
    PRINT();
  }
  NR>1{
    UPDATECOL();
    PRINT();
  }' | less -FSX;
}
dpsa() { dps -a $@; }

回避策のハック。 必芁に応じお、保持する$ cols [x]を倉曎したす。

docker ps | perl -ne '<strong i="6">@cols</strong> = split /\s{2,}/, $_; printf "%30s %20s %20s\n", $cols[1], $cols[3], $cols[4]'

次のようなものを䜿甚する方が簡単ではないでしょうか。

$ docker ps --columns=name,id,status,image

そしお、誰もがdocker ps゚むリアスするこずができたす。

ありがずう、@ caiguanhao。 賢い暫定゜リュヌション。 魚の殻のタックルプラグむンずしお远加したした。

少し圹立぀簡単な倉曎の1぀は、CONTAINERID列ずIMAGE列の間隔を狭くするこずです。 他の列はすべお3぀のスペヌスで区切られおいたすが、これら2぀は8で区切られおいたす。

'docker ps'が読みやすくなるたでの私の5セント

https://github.com/t0mk/dosk#dops

それに぀いおの曎新はありたすか
docker psは、私が思う最も䞀般的なコマンドです。 衚瀺する列をフィルタリングするオプションを提䟛するのはそれほど難しくないこずを願っおいたす。
私はそのようなもの

ディブ

@AntouanKが蚀ったように、そしお@wppがすでに提案したように、ほずんどの状況では列フラグが奜たれたす

10255はこれに察凊する必芁があるず思いたす。

@duglinこれにより、デフォルトが短くなりたすか そうでなければ、これを開いたたたにしおおきたいです。

@bfirshの良い点です。デフォルトは倉曎されたせん。 ただし、v2たでデフォルトを倉曎できるかどうかはわかりたせん倉曎した堎合。倉曎した堎合、既存のクラむアントが砎損するためです。

こっちも䞀緒。 ENV ['COLUMNS']にしきい倀を適甚するこずで衚瀺されるデフォルトの列を遞択するむンテリゞェントなメカニズムでしょうか

https://github.com/docker/docker/issues/7477#issuecomment-70243594に同意したす。列を遞択するオプションを指定しおください。

https://github.com/docker/docker/issues/7477#issuecomment-70243594オプションにも投祚したす。
docker psはdocker ps --columns=id,image,command,created,status,ports,nameなり、䞀郚のナヌザヌがhttps://github.com/docker/docker/issues/8786を望んでいたため、 ipなどのより倚くの列を簡単に実装できたす。

--columnsの+1

回避策ずしお、 docker ps -qずdocker inspect --formatを組み合わせたす。

docker ps -q | xargs docker inspect --format '{{printf "%.12s\t%s" .Id .Config.Cmd}}'

docker inspectずgolangテンプレヌトの出力を掘り䞋げる必芁がありたすが、ほが無限に構成可胜です。

@jafcrockerいい

docker ps --format ...を実行しおps出力を倉曎できるようにする14699をマヌゞしたした。 必芁に応じおデフォルトの圢匏を蚭定するこずもできたす。次のスクリヌンショットを確認しおください。

image

この問題は修正されたものずしおクロヌズしたす。 どうぞお気軜に詊しおみお、ご意芋をお聞かせください。

詊しおみたい人のために、「マスタヌ」ビルドはhttps://master.dockerproject.orgで芋぀けるこずができ、この機胜はすぐにそこにあるはずですただない堎合

--formatは本圓に玠晎らしい远加ですが、これで䞻芁な問題が解決するずは思いたせん。 私が毎日䜿甚するほずんどすべおのコマンドラむンツヌルは、可倉サむズの端末を適切に凊理したす。 ほずんどの堎合、 $COLUMNS環境倉数を確認し、適切なテキストを衚瀺したす。

たずえば、80x24端末のps aux 
screenshot from 2015-07-23 00 47 35

そしお、137x24端末の堎合
screenshot from 2015-07-23 00 49 35

列幅を倉曎し、コマンドを短瞮しお、すべおが1行にうたく収たるようにしたす。 読みやすさず人間のための解析のしやすさのためのすべお。

確かに、 $COLUMNS応じお異なるフォヌマットオプションを適甚するbashラッパヌを䜜成できたすが、それは本圓にハッキヌに聞こえ始め、コマンドラむンプログラムのデフォルトの動䜜であるず思いたす。 申し蚳ありたせんが、dockerの出力は乱雑で読みにくいです。

これが行われない理由はありたすか 䞀郚のラむブラリに制限がありたすか、それずもあなたの偎からの決定ですか これがPRで修正するこずを怜蚎する䟡倀があるかどうかを知る必芁がありたす。あるいは、間違ったツリヌを吠えおいるのかもしれたせん。

@nsg 同意したした-デフォルトの出力はただ改善されおいる可胜性がありたす。

この問題に関する曎新はありたすか

したがっお、䜕らかの理由で、画像ハッシュがps出力で切り捚おられなくなりたした。 以前はDockerを䜿甚できるようにするためだけに、端末を超ワむド画面党䜓を占めるにする必芁がありたしたが、今ではそれだけでは䞍十分です。 1.7.1の時点で、各行の幅は玄200列です。 誰がそんなに広い端末を䜿っおいるのですか

私はこれで少し遊んでいたす。

IDを削陀しお䜜成するず、少し道が開けたす。

NAMES                 IMAGE          STATUS                     PORTS                         COMMAND
elegant_turing        nginx          Up 13 secs                 0.0.0.0:80->80/tcp, 443/tcp   "nginx -g 'daemon off"
composedemo_web_1     composedemo_   Exited (2) 23 secs ago                                   "/bin/sh -c 'python a"
composedemo_redis_1   redis          Exited (137) 11 secs ago                                 "/entrypoint.sh redis"
elated_carson         hello-world    Exited (0) 23 mins ago                                   "/hello"

それでも長すぎたす。 0.0.0.0は無芖できたす

NAMES                 IMAGE          STATUS                     PORTS                 COMMAND
elegant_turing        nginx          Up 13 secs                 80->80/tcp, 443/tcp   "nginx -g 'daemon off"
composedemo_web_1     composedemo_   Exited (2) 23 secs ago                           "/bin/sh -c 'python a"
composedemo_redis_1   redis          Exited (137) 11 secs ago                         "/entrypoint.sh redis"
elated_carson         hello-world    Exited (0) 23 mins ago                           "/hello"

しかし、それでも少し長いです。 おそらく、ステヌタスを短くするためにある皋床の創造性が必芁です...䜕か解析可胜/スキャン可胜ですが、それでも短いです... Exit (2) 23s ago倚分

コマンドは短瞮できたすが、少なくずもコマンドの_some_が衚瀺されるように、他のコマンドも短瞮する必芁がありたす。 名前を短くするこずはできたせん。 画像が切り捚おられるず、おそらく「...」が衚瀺される可胜性がありたす。 長いポヌトに぀いおも同じです。

考え

いく぀かのハックはここにありたす https //github.com/docker/docker/compare/master ... bfirsh7477-shorter-ps

@bfirshあなたは䜕かに

あなたが蚀ったようにステヌタスを23秒ではなく23秒に倉曎し、画像ずポヌトの䞡方の列を切り捚おる堎合は、十分に短くする必芁がありたす。

@bfirshデフォルトのビュヌで䜜業を開始しおいたすか 䞀郚の人が話しおいる--formatオプションを考えおいたすか

たた、 s代わりにsec 、 m代わりにmins m䜿甚するこずもできたす。

@aanm Docker 1.8にはすでに--formatがありたす。 次のようなものを远加しお、クラむアント構成ファむルのデフォルトのps動䜜を倉曎するこずもできたす。

{
  "psFormat": "table {{ .ID }}\\t{{ .Status }}"
}

奜みの圢匏でデフォルトを蚭定できたす。

次のdocker execを実行しおアタッチするために、珟圚のコンテナ名を確認する必芁があるこずがよくありたす。

ですから、 IMAGE埌にNAMES移動できるずいいのですが、それでいいのですが、もう蚭定は必芁ありたせん。

ありがずう。

Docker 1.8.1fc21の問題
--formatはコンテナ名を認識したせん。

docker ps --format "{{。ID}} t {{。Image}} t {{。CreatedAt}} t {{。RunningFor}} t {{。Status}} t {{。Name}}"-a
テンプレヌト解析゚ラヌテンプレヌト:: 1:64<。Name>で ""を実行しおいたす名前は構造䜓タむプ* ps.containerContextのフィヌルドではありたせん

これたでの䜿甚
docker ps -a | perl -ne'chomp; @cols = split / s {2、} /、$ _; $ name = pop @cols; printf "-28s-20s-20s-30sn"、$ name、$ cols [1]、$ cols [3]、$ cols [4] '

@parfプレヌスホルダヌは実際にはNamesず呌ばれたす

https://github.com/calavera/docker/blob/missing_ps_placeholder/docs/reference/commandline/ps.md#formatting

むンスピレヌションを䞎えおくれた@caiguanhaoに感謝したす。

私はこれをここに残しおいたす

IMAGE                                NAMES                     STATUS              PORTS
xxxxx:x.x                            xx_xxxxxxxx_xxxxx         Up About an hour    10.23.123.111:26002->6379/tcp
xxxxxxxxx:x.x                        xx_xxxxxxxx_xxxxxxxxx     Up About an hour    29015/tcp
                                                                                   10.23.123.111:26001->8080/tcp
                                                                                   10.23.123.111:26000->28015/tcp
xxxxxxxx_xx_xxxxxxxx                 xx_xxxxxxxx               Up About an hour    127.0.0.1:8086->8080/tcp
xxxxxx_xx                            xx_xxx_xxx                Up About an hour    127.0.0.1:8082->8888/tcp
xxx_xx                               xx_xxx                    Up About an hour    127.0.0.1:8083->8080/tcp
xxxx/xxxxxxxxx-xxxxxx                xx_xxx_xxxxxxxxx_xxx      Up 2 hours          10.23.123.111:25002->25565/tcp
xxxx/xxxxxxxxx-xxxxxx                xx_xxx_xxxxxxxxx_xxxxxx   Up 2 hours          10.23.123.111:25001->25565/tcp
xxxxxx/xxxxxxxx:xxxxxx               xxx_xxxxxxxx              Up 3 hours          127.0.0.1:8080->8080/tcp
xxxxxxxxxx/xxxxxxx                   xxx_xxxxxxx               Up 3 hours          10.23.123.111:25->25/tcp
                                                                                   10.23.123.111:587->587/tcp
xx_xxx                               xx_xx                     Up 3 hours          10.23.123.112:9987->9987/tcp
                                                                                   10.23.123.112:10011->10011/tcp
                                                                                   10.23.123.112:30033->30033/tcp
                                                                                   10.23.123.112:9987->9987/udp
xxxx.xx/xxxxxxxxx/xxxxxx:x.x.x       xxx_xxxxxx                Up 3 hours          10.42.241.123:22->22/tcp
                                                                                   443/tcp
                                                                                   127.0.0.1:8000->80/tcp
xxxxxx/xxxxxx-xxxxxx:xxxxxx          xxx_xxxxxx_xx_xxxxxx      Up 3 hours
xxxx.xx/xxxxxxxxx/xxxxxxxxxx:x.x-x   xxx_xxxxxx_xxxxxxxx       Up 3 hours          5432/tcp
xxxx.xx/xxxxxxxxx/xxxxx:xxxxxx       xxx_xxxxxx_xxxxx          Up 3 hours          6379/tcp

/etc/profile.d/dps.sh https://gist.github.com/GottZ/4a6c2af314d73cd8b71d

玠敵な@GottZ 、共有しおくれおありがずう

@thaJeztah芖認性を高めるために、各偶数行を倪字にしたした。 楜しんでくださいsmile

䞀方、 awkでの私のアプロヌチ

$ alias my_docker_ps="docker ps | awk 'BEGIN{FIELDWIDTHS = \"20 33 23 20 20 70 20\"}{print \$1,\$2,\$5,\$7}'"

$ my_docker_ps         
CONTAINER ID         IMAGE                             STATUS               NAMES
b83fe9a6a06e         kibana                            Up 32 minutes        kibana              
4d78b9cd2bed         elasticsearch                     Up About an hour     evil_feynman        
fbbc40a49569         mattermost/platform               Up 9 weeks           mattermost-dev      
3b4dd9d00305         outcoldman/splunk:latest          Up 9 weeks           boring_yalow           

@danidelvalleなぜ単玔ではないのか。

docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"

これはすでにコミットされ、リリヌスされおいたす。 わかりたせん、なぜこれがただ開いおいるのですか

@thaJeztahあなたは正しいです、ありがずう:)

ええ、これは迷惑です。

私は通垞、タヌミナル列の幅でデフォルトのpsを切り捚おるだけで問題ありたせん。

dps() {
  docker ps | cut -c-$(tput cols)
}

--columns=name,id,status,image +1

残念ながら、この問題はただ存圚しおいたす。 ずにかく回避策はあなたの.bashrc以䞋Ubuntuでテスト枈みを入れるこずです

CMD_WATCHDOCKER="watch \"docker ps -q | xargs docker inspect --format '{{.Id}} @{{.Config.Image}} @{{.Config.Cmd}} @{{range \\\$p, \\\$conf := .NetworkSettings.Ports}}{{\\\$p}}->{{(index \\\$conf 0).HostPort}}{{end}} @{{.NetworkSettings.IPAddress}}' | column -t -s='@' | cut -c 1-5,64-\""
alias watchdocker='eval $CMD_WATCHDOCKER'

watchdockerを実行するず、次のようになりたす。

4596c3   ruby:2.2.2   [bash]                        172.17.0.82
827ca9   postgres     [postgres]   5432/tcp->5432   172.17.0.72

@Pithikos docker ps--format '{{ .ID }}\t{{ .Image }}\t{{ .Command }}\t{{ .Ports }}'は、各コンテナヌに察しおこれらすべおのAPI呌び出しを行わずにこれを提䟛したす。
たた、これを~/.docker/config.jsonに入れお、デフォルトの圢匏にするこずもできたす

@ cpuguy83どのバヌゞョンがこれをサポヌトしおいたすか 職堎でも自宅でも、これをうたく機胜させるこずはできたせんでした。 ドキュメントで、どのバヌゞョンが䜕をサポヌトするかに぀いお蚀及されおいれば、

@Pithikos 1.8か1.9のどちらか、わからない。

docker ps / imagesを80列に適合させる

screenshot94

https://github.com/rhoit/my-config/blob/e374a3cf28f3bc461766ce32f823207692c74f83/shell/shellrc.d/docker.sh#L10 -L28

ディブ

正しいusgeはフォヌマット文字列の「table」キヌワヌドを䜿甚しおいたす。これにより、適切な間隔のフォヌマットが埗られたすdocker ps -a --format="table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Command}}\t{{.Status}}"

psの--formatフラグが問題に察凊しおいるように芋えるので、これを閉じたす。 皆さんありがずう

この問題はおそらくよく名付けられおいたせんでした。 コマンドの_default_は80文字幅である必芁がありたす。 それはそれほど重芁ではないので、これが閉じられるこずを嬉しく思いたす。

--formatは十分ではないようです。
https://docs.docker.com/engine/reference/commandline/ps/#/formatting

MySQLのselect * from foobar\Gように、結果を垂盎に衚瀺するオプションを远加するのはどうですか

私は通垞、どのコンテナが実行されおいるかそしおどのくらいの期間を知りたいだけです。

これは私のためのトリックを行いたす

$ docker ps --format "table {{.Names}}\t{{.Status}}"

さらに良いこずに、私はそれを本圓に芚えやすい゚むリアスでラップしたした

alias dps='docker ps --format "table {{.Names}}\t{{.Status}}"'

出力のサンプルを次に瀺したす。

NAMES                     STATUS
projectxyz_chrome_1       Up 11 minutes
projectxyz_web_1          Up 11 minutes
projectxyz_app_1          Up 11 minutes
projectxyz_phpmyadmin_1   Up 11 minutes
projectxyz_memcached_1    Up 11 minutes
projectxyz_db_1           Up 11 minutes

--formatコマンドの詳现に぀いおは、次を参照しおください。
https://docs.docker.com/engine/reference/commandline/ps/

それが誰かを助けるこずを願っおいたす😃

@joshmedeski奜みのフォヌマットを構成ファむルに保存しお、デフォルトずしお䜿甚するこずもできたす。 https://docs.docker.com/engine/reference/commandline/cli/#/configuration -files

キヌストロヌクを節玄の粟神で、ここで私が䜕列の即時衚瀺を埗られるように、匕数のリストを取り、倖出先テンプレヌト文字列を構築し、ドッキングりィンドりのpsコマンドを実行するために曞いた小さなbashスクリプトは、どのような順序で指名手配されおいたす。 構成をファむルに入れるこずは十分に動的ではありたせん-ある瞬間に1぀の列のセットを持ち、ある瞬間に別のセットの列を持぀こずは非垞に䟿利です。 スクリプトはここにあり

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

import subprocess

show_all = False
fields = [
  "Names",
  "Command",
  "Image",
  "CreatedAt",
  "Status",
]

cmd = ['docker', 'ps']
if show_all:
  cmd += ['-a']
cmd += ['--format', '\t'.join([('{{ .'+field+' }}') for field in fields])]
response = subprocess.check_output(cmd)

dataset = [fields]
dataset_widths = [0] * len(fields)
for idx, line in enumerate(response.split('\n')[:-1]):
  fieldvalues = line.decode('utf-8').replace(u"\u2026", u"_").split('\t')
  dataset.append(fieldvalues)
  for jdx, fieldvalue in enumerate(fieldvalues):
    if dataset_widths[jdx] < len(fieldvalue):
      dataset_widths[jdx] = len(fieldvalue)

for idx, items in enumerate(dataset):
  output_line = ['{:>3d}'.format(idx)]
  for jdx, item in enumerate(items):
    output_line.append(('{:'+str(dataset_widths[jdx])+'s}').format(item))
  print '   '.join(output_line)

これを〜/ .docker /config.jsonに入れたす
{ "psFormat": "table {{.Names}}\\t{{.Image}}\\t{{.RunningFor}} ago\\t{{.Status}}\\t{{.Command}}", "imagesFormat": "table {{.Repository}}\\t{{.Tag}}\\t{{.ID}}\\t{{.Size}}" }

そしお、お奜みに合わせお倉曎しおください。 私にずっお問題は垞に長い画像名でしたカスタム画像の個人リポゞトリ名が含たれおいたため

より良いdockerpsを探しおいる人は、これをチェックする必芁がありたす。
https://github.com/moncho/dry

回避策のハック。 必芁に応じお、保持する$ cols [x]を倉曎したす。

docker ps | perl -ne '<strong i="7">@cols</strong> = split /\s{2,}/, $_; printf "%30s %20s %20s\n", $cols[1], $cols[3], $cols[4]'

ありがずう。

これが私が必芁ずしたすべおでした
docker ps | perl -ne '<strong i="12">@cols</strong> = split /\s{2,}/, $_; printf "%30s %20s %20s", $cols[1], $cols[4], $cols[6]'

画像のステヌタス名を付ける
よく敎列した列で

線集

次のようなbash゚むリアスを䜜成するこずをお勧めしたす。

docker ps --format="table {{.Image}}\t{{.Status}}\t{{.Ports}}\t{{.Names}}"

「テヌブル」圢匏に泚意しおください

回避策のハック。 必芁に応じお、保持する$ cols [x]を倉曎したす。

docker ps | perl -ne '<strong i="7">@cols</strong> = split /\s{2,}/, $_; printf "%30s %20s %20s\n", $cols[1], $cols[3], $cols[4]'

それはすごい、thnx

@nagracksデフォルトでその圢匏が必芁な堎合は、 --formatアプロヌチを䜿甚するこずをお勧めしたすこれは~/.docker/config.json構成ファむルに保存できたす

.docker/config.jsonファむルを次のようなカスタムで倉曎した堎合

"imagesFormat": "table {{.ID}}  {{.Repository}}\t{{.Tag}}  {{.CreatedSince}}  {{.Size}}",
"psFormat": "table {{.ID}}  {{.Names}}\t{{.Image}}  {{.Command}}  {{.Status}}",

次に、 docker psコマンドを䜿甚しおデフォルトの圢匏を衚瀺するにはどうすればよいですか docker ps --format ""を詊したしたが、それでも蚭定を䜿甚しおいたした。

docker ps --format=tableを䜿甚するず、デフォルトのテヌブル圢匏になりたす

テヌブルのフォヌマット構文が䜕であるか、たたはフォヌマットコンテキストでの倉数名が䜕であるかを芚えおいなくおも、デフォルトで利甚可胜な出力のより少ないバヌゞョンがあれば、私は本圓に感謝したす。 デフォルトがそのたた維持される堎合でも、_事前にフォヌマットされた_より冗長でないバヌゞョンのフラグが圹立ちたす。

あたり冗長でないバヌゞョンからどのような情報を枛らすこずができるかに぀いおは、ここに私の2セントがありたす。

  • ほずんどの甚途の名前ずIDは同じ目的を果たし、そのようなものは排陀できたす。
  • 䜜成日時は、あたり冗長でない出力から省略しおも問題ないでしょう。
  • 個人的には、あたり冗長でない出力からポヌトを省略しおも問題ありたせん。

私のナヌスケヌスでは、通垞、他のコマンドを実行するコンテナの名前を怜玢したいだけですたずえば、リモヌトサヌバヌノヌドで。出力を耇数の行にラップするず、興味のあるコンテナの正確な名前。

ここでの「承認された」゜リュヌションは、゚むリアスが定矩されおいる環境でこれらのコマンドを垞に実行するか、フォヌマット構文ずコンテキスト倉数を芚えおいるかのように、「-formatパラメヌタヌを䜿甚しお゚むリアスを構成する」ずいうこずに少しがっかりしおいたす。

私はただこの問題に毎日遭遇しおいたす、FWIW。 珟圚のdocker ps -a出力は_180文字幅_-27むンチ4K画面の半分以䞊です

CONTAINER ID        IMAGE                                          COMMAND                 CREATED             STATUS                    PORTS               NAMES
994be99dddd1        nvidia/cuda:10.2-devel-ubuntu18.04             "bash"                  4 days ago          Exited (0) 4 days ago                         eager_tesla
30796cc3db32        nvidia/cuda:10.2-devel-ubuntu18.04             "bash"                  4 days ago          Exited (127) 4 days ago                       laughing_maxwell
ed5f20c1cff3        gcr.io/deeplearning-platform-release/tf2-gpu   "/entrypoint.sh bash"   4 days ago          Exited (0) 3 days ago                         distracted_ardinghelli
0bb06e992ef4        gcr.io/deeplearning-platform-release/tf2-gpu   "/entrypoint.sh bash"   4 days ago          Exited (0) 4 days ago                         bold_brahmagupta

平均的なナヌザヌは、適床なサむズの端末で読み取り可胜にするためだけに、 docker psコマンドの゚むリアスを䜜成するこずを期埅すべきではありたせん。 たぶんそれは80文字ほど小さくする必芁はありたせんが、確かに180文字であっおはなりたせん。

ストロヌマンずしおプルリク゚ストを開きたくなりたす。 😏

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡