Cloud Engineering/Docker ๐Ÿณ

[Docker/๋„์ปค] ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰, ํ™•์ธ, ์‚ญ์ œ ๋ช…๋ น์–ด ์ •๋ฆฌ

minjiwoo 2023. 1. 31. 15:50
728x90

1. Docker Container ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ๋ชฉ๋ก ํ™•์ธ 

$ docker ps
$ docker container ls

 

2. Docker Container ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ํŒŒ์ผ ๋ชฉ๋ก ํ™•์ธ

$ docker ps -a
$ docker container ls -a

ํ˜„์žฌ Docker ํ˜ธ์ŠคํŠธ์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก์ด ๋ณด์ธ๋‹ค.

 

3. Docker Container ์ƒ์„ฑ 

$ docker container create —name CONTAINER IMAGE_REPO:TAG     
$ docker create —name CONTAINER IMAGE_REPO:TAG

๋‘ ๋ช…๋ น์–ด๋Š” ๋™์ผํ•˜๋‹ค. 

docker create ๋ช…๋ น์–ด์˜ ์˜ต์…˜

-i : ์ปจํ…Œ์ด๋„ˆ์—์„œ ํ‘œ์ค€ ์ž…๋ ฅ ์œ ์ง€ํ•˜๊ธฐ 
-t : ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„ ์ง€์ • 
--name : ์ปจํ…Œ์ด๋„ˆ์˜ ์ด๋ฆ„ ์ง€์ •. ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋„์ปค์—์„œ ๋žœ๋คํ•œ ์ด๋ฆ„์ด ๋ถ™๊ฒŒ ๋œ๋‹ค.

[์˜ˆ์‹œ] 
[user@localhost ~]$ docker container create --name web1 httpd:latest     da54f9195b848cce193cb2032856d1b9f1326095f5ab950f6593e83829f397fe

์ด๋•Œ ์ถœ๋ ฅ๋˜๋Š” ๊ฐ’์€ Container์˜ id๊ฐ’์ด๋‹ค. 

[์˜ˆ์‹œ] centos ์ด๋ฏธ์ง€ ํŒŒ์ผ๋กœ os1์ด๋ผ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ์ด ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ‘œ์ค€ ์ž…๋ ฅ๊ณผ ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„ ์ง€์ •์ด ํ•„์š”ํ•˜๋‹ค.  ๋”ฐ๋ผ์„œ -i ์˜ต์…˜๊ณผ -t ์˜ต์…˜์„ ๋ถ™์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค. 


[user@localhost ~]$ docker create -it --name os1 centos:latest

4. Docker Container ์‹คํ–‰ 

์ด๋ฏธ ์ƒ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ๋‘ ๋ช…๋ น์–ด๋Š” ๋™์ผํ•˜๋‹ค. 

$ docker container start CONTAINER
$ docker start CONTAINER

[์˜ˆ์‹œ]

os1์ด๋ผ๋Š” ์ด๋ฆ„์˜ centos ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ ์‹œํ‚ค๋Š” ๊ณผ์ •์ด๋‹ค. ์ฃผ์˜ํ•  ์ ์€ ์ปจํ…Œ์ด๋„ˆ์˜ ํ‘œ์ค€ ์ถœ๋ ฅ๊ณผ ํ‘œ์ค€ ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ด์•ผ os1 ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. 

-i ์˜ต์…˜ : ์ปจํ…Œ์ด๋„ˆ์˜ ํ‘œ์ค€ ์ž…๋ ฅ์— ์—ฐ๊ฒฐ 
-a ์˜ต์…˜ : ์ปจํ…Œ์ด๋„ˆ์˜ ํ‘œ์ค€ ์ถœ๋ ฅ/์—๋Ÿฌ์— ์—ฐ๊ฒฐ 

[user@localhost ~]$ docker container start -ai os1
[root@c42056913b24 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var

os1 ์ด๋ผ๋Š” ์ด๋ฆ„์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ ‘์†ํ•œ ์˜ˆ์‹œ์ด๋‹ค. ์ฃผ์˜ํ•  ์ ์€ Docker host์˜ root ์™€ Container์˜ root ๋Š” ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 

  • Ctrl + P + Q : ๋„์ปค ํ˜ธ์ŠคํŠธ๋กœ ๋Œ์•„์˜ด. ์ด ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ณ„์† ์‹คํ–‰์ƒํƒœ์ด๋‹ค. 
  • exit : ๋„์ปค ํ˜ธ์ŠคํŠธ๋กœ ๋Œ์•„์˜ด. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ ๋œ๋‹ค. 

 

5. Docker Container ์ƒ์„ธ ์ •๋ณด ํ™•์ธ

$ docker container inspect CONTAINER_NAME

[์˜ˆ์‹œ] inspect ๋ช…๋ น์–ด์™€ grep ๋ช…๋ น์–ด๋ฅผ ๊ฐ™์ด ์ด์šฉํ•ด์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ๋ฐ”๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. 

[user@localhost ~]$ docker container inspect web1 | grep -i ipaddress
"SecondaryIPAddresses": null, "IPAddress": "172.17.0.2", "IPAddress": "172.17.0.2",

[user@localhost ~]$ curl http://172.17.0.2 <html><body><h1>It works!</h1></body></html>

 

6. Docker Container ์‹คํ–‰ ๋ช…๋ น์–ด run 

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑ + ์‹คํ–‰ ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ์ฆ‰ , docker create ์™€ docker start๋ฅผ ํ•œ๋ฒˆ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

$ docker run -it —name os2 centos:latest

-i : ํ‘œ์ค€์ž…๋ ฅ์„ ์ปจํ…Œ์ด๋„ˆ์— ์ „๋‹ฌ
-t : ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„ ์ง€์ •
-d : ๋ถ„๋ฆฌ(detach) ์˜ต์…˜ ๊ทธ๋ƒฅ run ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์ปจํ…Œ์ด๋„ˆ๋Š” ํฌ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰๋  ๊ฒƒ์ด๋‹ค. ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์˜ต์…˜์ด๋‹ค. -> ๋ณดํ†ต ์„œ๋น„์Šค๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰ํ•œ๋‹ค. ๋‹ค๋ฅธ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

  • ํฌ๊ทธ๋ผ์šด๋“œ/๋ฐฑ๊ทธ๋ผ์šด๋“œ → ํ„ฐ๋ฏธ๋„์— ์ œ์–ด๊ถŒ์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ or ํ™”๋ฉด์— ๋ณด์ด๋Š”์ง€ ์•„๋‹Œ์ง€๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋„์ปค ์˜ˆ์ œ์—์„œ docker run hello-world ๊ฐ€ ์ฒ˜์Œ ๋“ฑ์žฅํ•˜๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ ๋˜ํ•œ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๋„์ปค ํ—ˆ๋ธŒ์—์„œ ๋ฐ”๋กœ ๋ฐ›์•„์˜จ ํ›„์— ์‹คํ–‰๊นŒ์ง€ ์‹œํ‚ค๊ณ  ์žˆ๋‹ค. 

[์˜ˆ์‹œ]
shell์€ ์ œ์–ด ํ„ฐ๋ฏธ๋„์„ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค. ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ‚ค๋ณด๋“œ๋กœ ์ž…๋ ฅํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ํ‘œ์ค€ ์ž…๋ ฅ์„ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‚ค๋ณด๋“œ ์ž…๋ ฅ (ํ‘œ์ค€ ์ž…๋ ฅ)์ด ์•ˆ๋จน๋Š”๋‹ค. 

[root@localhost ~]# docker container run -t --name centos7-1 centos:7
[root@2bb53b79a70a /]# ls
(ํ™”๋ฉด์— ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅ๋˜์ง€ ์•Š์Œ)

7. Docker Container ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ 

$ docker stats

์ปจํ…Œ์ด๋„ˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

stats์˜ ์˜ต์…˜์œผ๋กœ --no stream ์„ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ์›๋ž˜๋Š” stats ๋ช…๋ น์–ด๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์„ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ --no stream ์˜ต์…˜์œผ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ณ  ๋งจ ์ฒ˜์Œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

UP : ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ
EXIT : ์ข…๋ฃŒ๋œ ์ปจํ…Œ์ด๋„ˆ

 

8. Docker Container ์ข…๋ฃŒ 

$ docker container stop CONTAINER_NAME

 

9. Docker Container ์‚ญ์ œ 

$ docker container rm CONTAINER_NAME
$ docker rm CONTAINER_NAME

docker container rm -f : -f ์˜ต์…˜์„ ๋ถ™์ด๋ฉด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ•์ œ๋กœ ์‚ญ์ œํ•œ๋‹ค. 

 

10. Docker Container ๋‹ค์‹œ ์‹คํ–‰ 

$ docker container restart CONTAINER_NAME
728x90