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