docker ps
์ถ๋ ฅ์ 80์ ๋๋น์ ํฐ๋ฏธ๋์์ ์ฝ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค.
/bin/ps
๋ ์ข์ ํฐ๋ฏธ๋์์ ์ถ๋ ฅ์ ๋ํํ๋ ์์
์ ๊ฝค ์ ์ํํฉ๋๋ค(์: ์ค์ํ ์ ๋ณด๋ฅผ ๋จผ์ ๋ฃ๊ณ , ๋ง์ง๋ง์ ๋ช
๋ นํ๊ณ , ์๋ฆผ). ์ฐ๋ฆฌ๊ฐ ๋ ์ํ ์ ์์์ง ๊ถ๊ธํฉ๋๋ค.
๋ง์ ์ฌ๋๊ณผ ๋ง์ +1. ๋๋ 80x24 ํฐ๋ฏธ๋์ ์ฌ์ฉํฉ๋๋ค.
๋ด ๋๋ฃ๋ค) ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๊ฝค ์ค๋ซ๋์ ๋๋ฅผ ์ฝ๊ฐ ์๊ทนํ์ต๋๋ค.
์๊ฐ.
๋๋ ์ด๊ฒ์ด ๋์๊ฒ๋ ์์ฃผ ๊ฑธ๋ฆฐ๋ค๊ณ ๋งํด์ผ ํ๋ค.
์๋ฃจ์ ์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น? ๋ ์ข์ ํฐ๋ฏธ๋์ ๋ ์์ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ธ์, ID๋ ์ค์ ๋ก ๊ฑฐ๊ธฐ์ ํ์ํ์ง ์์ต๋๋ค.
์ด๊ฑด ์ด๋์:
NAME IMAGE STATUS PORTS COMMAND
prickly_perlman ubuntu:14.04 Up 15s 8000->8000/tcp sleep 30000
์ค๋ช :
/bin/ps
์ ๊ฐ์ด ํฐ๋ฏธ๋ ๋๋น๋ก ์๋ฆด ์ ์์ต๋๋ค.@bfirsh :thumbsup: ์ด ๋ฉ๋ชจ์ ํจ๊ป;
--no-trunc
, ์ด์ ์ปจํ
์ด๋ ID๊ฐ ๋ ์ด์ ํ์๋์ง ์์ต๋๋ค. ์ค์ง๋ ์ปจํ
์ด๋๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ์ด ๊ธฐ๋ฅ์ ์์กดํ๋ ๋ง์ ์๊ฐ ์์ต๋๋ค.--columns=a,f,g
--sort=a,e
-a
))ํธ์ถ๊ธฐ๋ก ์ฐ๊ฒฐํ๋ ๋ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ์์ต๋๊น?
docker ps | less -S
@benjamin-thomas ๋๋ docker ps
๋ TTY๋ฅผ ๊ฐ์งํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก less -S
๋ก ํ์ดํํฉ๋๊น?
์ข์ ํธ๋ฆญ @benjamin-thomas , ๋๋ ๊ทธ๊ฒ์ ๋ฏธ๋์ ํ์คํ ์ฌ์ฉํ ๊ฒ์
๋๋ค. ํ ๊ฐ์ง ๊ณ ๋ คํด์ผ ํ ์ฌํญ์ ๋ด๊ฐ ๊ฐ์ฅ ์ค์ํ๊ฒ ์๊ฐํ๋ ์ ๋ณด์ธ ์ปจํ
์ด๋ ์ด๋ฆ์ ์๋ตํ๋ค๋ ๊ฒ์
๋๋ค. ๋ฐ๋ฉด ๋ด ์ฌ์ฉ ์ฌ๋ก์์๋ ์ผ๋ฐ์ ์ผ๋ก CREATED
๋ฐ STATUS
๋ํด ๊ทธ๋ค์ง ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค.
IMO ์ฌ์ฉ ์ฌ๋ก๋ ์ฌ์ฉ์์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ ์๊ฒ STATUS
๋ ์ปจํ
์ด๋๊ฐ ์ฌ์ ํ ์ ๋๋ก ์คํ๋๊ณ ์๋์ง ๋๋ 'ํํ์'๊ฐ ๋์๋์ง ๋น ๋ฅด๊ฒ ํ์ธํ๋ ๋ฐ _is_ ์ค์ํฉ๋๋ค.
์ด๊ฒ์ด ps ์ถ๋ ฅ์ ๋๊ท๋ชจ ์ฌ๊ตฌํ์ด ๋์ด์ผ ํ๋์ง, ์๋๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ข ๋ ๊น๋ํ๊ฒ ๋ง๋ค๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถํ์ฌ ํ์ํ ์ด์ ์ง์ ํ๋ ์ต์ ์ ์ถ๊ฐํ๊ณ ์ ๋ ฌ ์์๋ฅผ ์ง์ ํ์ฌ ๋ ๊ตฌ์ฑํ ์ ์๋๋ก _start_ํด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ฐ ํํฐ๋ง.
@nathanleclaire , less
์์ ์์ผ๋ฉด ํ์ดํ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒด ์ฝํ
์ธ ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์๋๋ฉด ๋ด๊ฐ ๋น์ ์ ์คํด ํ์ต๋๊น?
@grahamc ์
@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์ ๊ฐ์ ๋ ๋ง์ ์ด๋ฆ์ ์ป์ต๋๋ค. ๋ด๊ฐ ์์
ํ๊ณ ์๋ ์์คํ
์ ํ ๋ฒ ์คํํ๋ฉด 17๊ฐ์ ์ปจํ
์ด๋๊ฐ ์์๋ฉ๋๋ค. ์ด ์ปจํ
์ด๋๋ ๋ชจ๋ 31๊ฐ์ ์ข
์์ฑ ๊ด๊ณ๋ก ์ธํด _387๊ฐ์ ์ด๋ฆ์ ๊ฐ์ต๋๋ค. ํฐ๋ฏธ๋ ์ฐฝ์ ์๋ฌด๋ฆฌ ๋๊ฒ ๋ง๋ค์ด๋ ํธ์ถ๊ธฐ๊ฐ ์์ผ๋ฉด docker ps
์ ์ถ๋ ฅ์ ์ฝ์ ์ ์์ต๋๋ค. ์ปจํ
์ด๋ ์์์ ์ด๋ฆ ์๊ฐ _2์ฐจ๋ณด๋ค ๋ ๋์๋ค๋ ๊ฒ์ด ์ ๋ง ์๋ฏธ๊ฐ ์์ต๋๊น? ์ด ํํ์ ์์ค์ ์ด๊ฑฐ๋ฅผ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ์ ์ด๋ ์ข์ ๊ฒ์
๋๋ค.
@mraccident :+1: docker ps
๋ ํด๋น ์ปจํ
์ด๋์ ๋ชจ๋ ์ด๋ฆ์ด ์๋๋ผ ๊ธฐ๋ณธ ์ด๋ฆ๋ง ํ์ํด์ผ ํฉ๋๋ค.
Salut, ๊ทธ๊ฒ์ ๋๋ฅผ ๊ดด๋กญํ๊ณ ์์๊ณ ๋ฐฉ๊ธ ๋์ปค์ '--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๋
๋์ ํ์ด์ฌ ์ฌ์ฉ์๋ก์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ฌ์ด์ง ๋๋์ต๋๋ค. ์ข์์!
ํธ์ง : ์๋ง๋ ํฐ๋ฏธ๋์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ด์ ์ ๊ฑฐํ์ฌ ์ค์ ์ค์ผ ์ ์์ต๋๋ค ...
EDIT2: fd3->fd2->fd1๋ ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ ์คํด์ ์์ง๊ฐ ์์ง๋ง NAMES๋ฅผ ์ค์ด๊ณ count(CHILDREN)๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
$ ~/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
์๋ฅผ ๋ค์ด columname:width :modifier, columname:width :modifier, ...๋ก ํ๊ฒฝ ๋ณ์ DOCKER_PS_FORMAT
๋ฅผ ์ค์ ํ์ฌ ํ
ํ๋ฆฟ์ ์ ๊ณตํ๋๋ก ํ์ฉํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น ?
์ฌ๊ธฐ์ modifier
๋ no-trunc
, full
(์: ์ปจํ
์ด๋ ID) ๋๋ short
๋ํด CREATED
short
์ ๊ฐ์ ์ถ๊ฐ ์ค์ ์ ํ์ฉํ ์ ์์ต๋๋ค full
์ฌ๊ธฐ์ ~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 ๊ฐ์ฌํฉ๋๋ค. ์๋ฆฌํ ์์ ์๋ฃจ์ . ๋ฌผ๊ณ ๊ธฐ ๊ป๋ฐ๊ธฐ์ ๋ํ ํํด ํ๋ฌ๊ทธ์ธ ์ผ๋ก ์ถ๊ฐํ์ต๋๋ค.
์ฌ๋ฌ๋ถ, ํ์ํ ์ด์ ์ ํํ ์ ์๋๋ก @caiguanhao ์ ์ฝ๋๋ฅผ ์ฝ๊ฐ ๊ฐ์ ํ์ต๋๋ค. ๋ง์ ํฌํธ๋ฅผ ๋ ธ์ถํ๋ ์ปจํ ์ด๋๊ฐ ์๋ ๊ฒฝ์ฐ(์: 5 ๋๋ 6๊ฐ์ ํฌํธ๋ฅผ ๋ ธ์ถํ๊ณ 300์ ๋๋น์ ํ๋ฉด ์ค๋ฒํ๋ก๋ ๋ง๋ค ์ ์๋ Consul ์๋น์ค) ํด๋น ํฌํธ๋ฅผ ์ ์ธํ ๋ชจ๋ ์ด์ ํ์ํ๋ ๋ช ๋ น์ ๊ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ปจํ ์ด๋์ ํด๋น ํฌํธ์ ์ด๋ฆ๋ง ํ์ํ๋ ๋ ๋ค๋ฅธ ์ต์ (์ด ์ต์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ช ๋ น์ผ๋ก ์ถ๊ฐํ์ต๋๋ค):
https://github.com/jpmelos/dotfiles/commit/457a9c68f87eb5bd455aa22bdadab81c2651c2ea
์ฝ๊ฐ์ ๋์์ด ๋ ๊ฐ๋จํ ๋ณ๊ฒฝ ์ฌํญ ์ค ํ๋๋ CONTAINER ID์ IMAGE ์ด ์ฌ์ด์ ๊ฐ๊ฒฉ์ ์ค์ด๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ์ด์ ๋ชจ๋ 3๊ฐ์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ง๋ง ์ด ๋ ์ด์ 8๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
'docker ps'๋ฅผ ์ฝ์ ์ ์์ ๋๊น์ง 5์ผํธ:
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ํ ์ด๋ค ์
๋ฐ์ดํธ๋ฅผ ๋ณผ ๊ฒ์
๋๊น?
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
์ด๊ณ ์ผ๋ถ ์ฌ์ฉ์๊ฐ ์ํ๋ ๋๋ก ip
์ ๊ฐ์ ๋ ๋ง์ ์ด์ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค. https://github.com/docker/docker/issues/8786
--์ด์ ๊ฒฝ์ฐ +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๋ฅผ ๋ฐฉ๊ธ ๋ณํฉํ์ต๋๋ค. ์ํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํ์์ ์ค์ ํ ์๋ ์์ต๋๋ค. ์ด ์คํฌ๋ฆฐ์ท์ ํ์ธํ์ธ์.
์ด ๋ฌธ์ ๋ ํด๊ฒฐ๋ ๊ฒ์ผ๋ก ์ข ๋ฃํ๊ฒ ์ต๋๋ค. ๋ถ๋ด ์์ด ์๋ํด ๋ณด๊ณ ์ด๋ป๊ฒ ์๊ฐํ๋์ง ์๋ ค์ฃผ์ธ์.
์๋ํด ๋ณด๊ณ ์ถ์ ๋ถ๋ค์ ์ํด https://master.dockerproject.org ์์ "๋ง์คํฐ" ๋น๋๋ฅผ ์ฐพ์ ์ ์์ผ๋ฉฐ ์ด ๊ธฐ๋ฅ์ ๊ณง ์ ๊ณต๋ ์์ ์ ๋๋ค(์์ง ์๋ ๊ฒฝ์ฐ).
--format
๋ ์ ๋ง ์ข์ ์ถ๊ฐ ๊ธฐ๋ฅ์ด์ง๋ง ์ด๊ฒ์ด ์ฃผ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ด๊ฐ ๋งค์ผ ์ฌ์ฉํ๋ ๊ฑฐ์ ๋ชจ๋ ๋ช
๋ น์ค ๋๊ตฌ๋ ๋ค์ํ ํฌ๊ธฐ์ ํฐ๋ฏธ๋์ ์ ์ ํ๊ฒ ์ฒ๋ฆฌํฉ๋๋ค. ๋๋ถ๋ถ $COLUMNS
ํ๊ฒฝ ๋ณ์๋ฅผ ๋ณด๊ณ ์ ์ ํ ํ
์คํธ๋ฅผ ํ์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด 80x24 ํฐ๋ฏธ๋์ ps aux
:
๊ทธ๋ฆฌ๊ณ 137x24 ํฐ๋ฏธ๋์์:
์ด ๋๋น๋ฅผ ๋ณ๊ฒฝํ๊ณ ๋ช ๋ น์ ์ค์ฌ ๋ชจ๋ ๊ฒ์ด ํ ์ค์ ์ ๋ง๋๋ก ํฉ๋๋ค. ๊ฐ๋ ์ฑ์ ์ํด ๋ชจ๋ ๊ฒ์ด ์๊ณ ์ฌ๋์ด ๊ตฌ๋ฌธ ๋ถ์ํ๊ธฐ ์ฝ์ต๋๋ค.
๋ฌผ๋ก $COLUMNS
์ ๋ฐ๋ผ ๋ค๋ฅธ ํ์ ์ง์ ์ต์
์ ์ ์ฉํ๋ bash ๋ํผ๋ฅผ ์์ฑํ ์๋ ์์ง๋ง ์ ๋ง ํดํน๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฌ๊ธฐ ์์ํ๊ณ ๋ชจ๋ ๋ช
๋ น์ค ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ ๋์์ด ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฃ์กํฉ๋๋ค. docker์ ์ถ๋ ฅ์ด ์ง์ ๋ถํ๊ณ ์ฝ๊ธฐ ์ด๋ ต์ต๋๋ค.
์ด๊ฒ ์ ๋๋ ์ด์ ๊ฐ ์๋์? ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ํ ์ฌํญ์ด๋ ๊ทํ์ ๊ฒฐ์ ์ด ์์ต๋๊น? ์ด๊ฒ์ด PR์์ ์์ ํ๊ธฐ ์ํด ๊ณ ๋ คํ ๊ฐ์น๊ฐ ์๋ ๊ฒ์ธ์ง ์๋๋ฉด ๋ด๊ฐ ์๋ชป๋ ๋๋ฌด๋ฅผ ์ง๊ณ ์๋์ง ์์์ผ ํฉ๋๋ค.
@nsg : ๋์ํจ - ๊ธฐ๋ณธ ์ถ๋ ฅ์ ์ฌ์ ํ โโ๊ฐ์ ๋ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
์ด๋ค ์ด์ ๋ก๋ ์ด๋ฏธ์ง ํด์๋ ps ์ถ๋ ฅ์์ โโ๋ ์ด์ ์๋ฆฌ์ง ์์ต๋๋ค. ๋๋ ์ด๋ฏธ ๊ณผ๊ฑฐ์ ๋์ปค๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ธฐ ์ํด ํฐ๋ฏธ๋์ ์ธํธ๋ผ ์์ด๋(์ ์ฒด ํ๋ฉด ์ฐจ์ง)๋ก ๋ง๋ค์ด์ผ ํ์ง๋ง ์ด์ ๋ ๋ ์ด์ ์ถฉ๋ถํ์ง ์์ต๋๋ค. 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
์๋ง๋?
๋ช ๋ น์ ์ค์ผ ์ ์์ง๋ง ๋ช ๋ น์ ์ ์ด๋ _์ผ๋ถ_๊ฐ ํ์๋๋๋ก ๋ค๋ฅธ ๊ฒ๋ ์ค์ฌ์ผ ํฉ๋๋ค. ์ด๋ฆ์ ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ฏธ์ง๊ฐ ์๋ฆด ๋ "..."๊ฐ ํ์๋ ์ ์์ต๋๋ค. ๊ธด ํฌํธ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์๊ฐ?
์ผ๋ถ ํดํน์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. https://github.com/docker/docker/compare/master...bfirsh :7477-shorter-ps
@bfirsh ๋ญ๊ฐ ํ๊ณ ์๋ ๊ฒ ๊ฐ์์.
์ํ(๋งํ๋ฏ์ด)๋ฅผ 23์ด ๋์ 23์ด๋ก ๋ณ๊ฒฝํ๊ณ ์ด๋ฏธ์ง์ ํฌํธ ์ด์ ๋ชจ๋ ์๋ฅด๋ฉด ์ถฉ๋ถํ ์งง์์ผ ํฉ๋๋ค.
@bfirsh ๊ธฐ๋ณธ ๋ณด๊ธฐ์์ ์์
์ ์์ํ์๊ฒ ์ต๋๊น? ์ผ๋ถ ์ฌ๋๋ค์ด ๋งํ๋ --format
์ต์
์ ์๊ฐํ๊ณ ๊ณ์ญ๋๊น?
๋ํ s
๋์ sec
, m
๋์ mins
@aanm ์ฐ๋ฆฌ๋ ์ด๋ฏธ docker 1.8์ --format
๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐํ์ฌ ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ ํ์ผ์์ ๊ธฐ๋ณธ ps ๋์์ ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค.
{
"psFormat": "table {{ .ID }}\\t{{ .Status }}"
}
๋ ์ข์ํ๋ ํ์์ผ๋ก ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค.
๋ค์ docker exec
์ ์ฒจ๋ถํ ์คํ์ ์ํด ํ์ฌ ์ปจํ
์ด๋ ์ด๋ฆ์ ํ์ธํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๊ทธ๋์, ๋๋ ์์ง์ผ ์ ์๋ค๋ฉด ํฌ๋ง NAMES
ํ IMAGE
, ๊ทธ๊ฒ์ ์ข์, ๋ ๋ ์ด์ ๋ช ๊ฐ์ง ์ค์ ์ํ์ง ์์๋๋ฉ๋๋ค.
๊ฐ์ฌ ํด์.
๋์ปค 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 ๊ตฌ์กฐ ์ ํ์ ํ๋๊ฐ ์๋๋๋ค.
์ง๊ธ๊น์ง ์ฌ์ฉ:
๋์ปค PS -a | perl -ne 'chomp; @cols = ๋ถํ /s{2,}/, $_; $name=ํ @cols; printf "%-28s %-20s %-20s %-30sn", $name, $cols[1], $cols[3], $cols[4]'
@parf ์๋ฆฌ ํ์์๋ ์ค์ ๋ก Names
.
์๊ฐ์ ์ค @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 ๋ ๋์ ๊ฐ์์ฑ์ ์ํด ๊ฐ ์ง์ ๋ผ์ธ์ ๊ตต๊ฒ ํ์ํ์ต๋๋ค. ์ฆ๊ฒ๊ฒ ๋ณด๋ด์ธ์ :์ค๋ง์ผ:
ํํธ 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 ๋ค ๋ง์ด ๋ง์, ๊ณ ๋ง์ :)
@ovidiub13 ์ฃผ๋ก https://github.com/docker/docker/issues/7477#issuecomment -123898874 ๋๋ฌธ์
๋ค ์ง์ฆ๋๋ค์..
๋๋ ์ผ๋ฐ์ ์ผ๋ก ํฐ๋ฏธ๋ ์ด ๋๋น์์ ๊ธฐ๋ณธ 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์ด์ ๋ง์ถฅ๋๋ค.
์ฌ๋ฐ๋ฅธ ์ฌ์ฉ๋ฒ์ ํ์ ๋ฌธ์์ด์ "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
์ฌ๊ธฐ ์ ํค ์ ๋ ฅ์ ์ ์ฅํ๋ ์ ์ ์ผ๋ก ์ธ์ ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๊ณ go ํ ํ๋ฆฟ ๋ฌธ์์ด์ ๊ตฌ์ฑํ๊ณ docker ps ๋ช ๋ น์ ์คํํ์ฌ ์ํ๋ ์ด์ ์์์ ๊ด๊ณ์์ด ์ฆ์ ํ์ํ๊ธฐ ์ํด ์์ฑํ ์์ bash ์คํฌ๋ฆฝํธ๊ฐ ์์ต๋๋ค. ํ์ผ์ ๊ตฌ์ฑ์ ๋ฃ๋ ๊ฒ์ ์ถฉ๋ถํ ๋์ ์ด์ง ์์ต๋๋ค. ํ ์ด ์ธํธ๋ฅผ ํ ์๊ฐ์ ๊ฐ๊ณ ์ ์ ํ์ ๋ค๋ฅธ ์ธํธ๋ฅผ ๊ฐ๋ ๊ฒ์ด ๋งค์ฐ ์ ์ฉํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์คํฌ๋ฆฝํธ๊ฐ ์์ต๋๋ค . ๋๊ตฐ๊ฐ์๊ฒ ์ ์ฉํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ฑด๋ฐฐ-์ค๋
#!/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}}"
}
๊ทธ๋ฆฌ๊ณ ์ํ๋ ๋๋ก ์์ ํฉ๋๋ค. ๋์๊ฒ ๋ฌธ์ ๋ ํญ์ ๊ธด ์ด๋ฏธ์ง ์ด๋ฆ์ด์์ต๋๋ค (๋ด ์ฌ์ฉ์ ์ ์ ์ด๋ฏธ์ง์ ๋ํ ๊ฐ์ธ ์ ์ฅ์ ์ด๋ฆ์ด ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์)
๋ ๋์ docker ps๋ฅผ ์ฐพ๋ ๋ชจ๋ ์ฌ๋์ ์ด๊ฒ์ ํ์ธํด์ผ ํฉ๋๋ค.
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
๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ํ
์ด๋ธ ํ์์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
ํ ์ด๋ธ ํ์ ์ง์ ๊ตฌ๋ฌธ์ด ๋ฌด์์ธ์ง ๋๋ ํ์ ์ง์ ์ปจํ ์คํธ์์ ๋ณ์ ์ด๋ฆ์ด ๋ฌด์์ธ์ง ๊ธฐ์ตํ ํ์ ์์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๋ ์์ธํ ๋ฒ์ ์ ์ถ๋ ฅ์ด ์๋ค๋ฉด ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๊ธฐ๋ณธ๊ฐ์ด ๊ทธ๋๋ก ์ ์ง๋๋๋ผ๋ _pre-formatted_ ๋ ์์ธํ ๋ฒ์ ์ ๋ํ ํ๋๊ทธ๊ฐ ์ ์ฉํ ๊ฒ์ ๋๋ค.
๋ ์ฅํฉํ ๋ฒ์ ์์ ์ด๋ค ์ ๋ณด๋ฅผ ์ค์ผ ์ ์๋์ง์ ๊ดํด์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ด ์ฌ์ฉ ์ฌ๋ก์์ ๋๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค๋ฅธ ๋ช ๋ น์ ์คํํ ์ปจํ ์ด๋์ ์ด๋ฆ์ ์ฐพ๊ณ ์ถ์ต๋๋ค(์: ์๊ฒฉ ์๋ฒ ๋ ธ๋์์). ๋ด๊ฐ ๊ด์ฌ ์๋ ์ปจํ ์ด๋์ ์ ํํ ์ด๋ฆ.
๋ณ์นญ์ด ์ ์๋ ํ๊ฒฝ์์ ํญ์ ์ด๋ฌํ ๋ช ๋ น์ ์คํํ๊ฑฐ๋ ํ์ ์ง์ ๊ตฌ๋ฌธ ๋ฐ ์ปจํ ์คํธ ๋ณ์๋ฅผ ๊ธฐ์ตํ๋ ๊ฒ์ฒ๋ผ ์ฌ๊ธฐ์์ "์น์ธ๋" ์๋ฃจ์ ์ด "--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์๊ฐ ๋์ด์๋ ์ ๋ฉ๋๋ค.
๋๋ ๋นจ๊ฐฑ์ด์ฒ๋ผ ํ ๋ฆฌํ์คํธ๋ฅผ ์ด๊ณ ์ถ์ ์ ํน์ ๋ฐ์ต๋๋ค. ๐
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํธ์ถ๊ธฐ๋ก ์ฐ๊ฒฐํ๋ ๋ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ์์ต๋๊น?