[Docker] ๐Ÿš€ ์šฐ๋ฆฌ ์กฐ์ง์˜ Docker ์ „ํ™˜๊ธฐ: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ฐˆ์•„ํƒ„ ์ด์œ ์™€ ๊ธฐ๋ก-2

KIM Jongwanยท2024๋…„ 9์›” 30์ผ
0
post-thumbnail

๐Ÿงช Docker ์‹ค์Šต ์‹œ์ž‘ํ•˜๊ธฐ: ์šฐ๋ถ„ํˆฌ ์ปจํ…Œ์ด๋„ˆ ๋งŒ๋“ค๊ณ  ์ ‘์†ํ•ด๋ณด๊ธฐ

์ด์ „ ํฌ์ŠคํŠธ์—์„œ๋Š” Docker Host๋กœ ์‚ฌ์šฉํ•  ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , Docker ์—”์ง„์„ ์„ค์น˜ํ•ด ์‹คํ–‰ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.
์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ทธ ์œ„์— ์ƒˆ๋กœ์šด Ubuntu ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ช…๋ น์–ด ์‹คํ–‰ ๋ฐ SSH ์ ‘์† ์‹ค์Šต๊นŒ์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๐Ÿ“ฆ Docker Hub & ์ด๋ฏธ์ง€๋ž€?

Docker ์ปจํ…Œ์ด๋„ˆ๋Š” ์‚ฌ์ „์— ๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€(image)๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ด ์ด๋ฏธ์ง€๋“ค์€ Docker Hub๋ผ๋Š” ๊ณต๊ฐœ ์ €์žฅ์†Œ์—์„œ ๊ด€๋ฆฌ๋˜๋ฉฐ, ๋ˆ„๊ตฌ๋‚˜ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ์ž์‹ ์ด ๋งŒ๋“  ์ด๋ฏธ์ง€๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๋งˆ๋‹ค Ubuntu ๋ฒ„์ „์ด ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€ ๋ชฉ๋ก์€ ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ docker images

์ฒ˜์Œ ์„ค์น˜ํ•œ Docker ํ™˜๊ฒฝ์—์„œ๋Š” ์•„๋ฌด ์ด๋ฏธ์ง€๋„ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋นˆ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๐Ÿ“ฅ Docker ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ: docker pull

์ด์ œ docker pull ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด Ubuntu 22.04 ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

$ docker pull ubuntu:22.04

ํƒœ๊ทธ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ latest ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

$ docker pull ubuntu

๋‹ค์‹œ ์ด๋ฏธ์ง€ ๋ชฉ๋ก์„ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       latest    b1e9cef3f297   4 weeks ago   78.1MB
ubuntu       22.04     97271d29cb79   2 weeks ago   77.9MB

๐Ÿš€ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ: docker run

์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•˜๋‹ค๋ฉด ์ด์ œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

$ docker run ubuntu:22.04

์ดํ›„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐ”๋กœ ์ข…๋ฃŒ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ docker ps -a

์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋œ ํ›„ ๋ชจ๋“  ์ž…๋ ฅ์ด ์ข…๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ๊บผ์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์‹œ ์‹คํ–‰ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ› ๏ธ ์ž์ฃผ ์“ฐ๋Š” docker run ์˜ต์…˜

์˜ต์…˜์„ค๋ช…
--name์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ์ง€์ •
-iํ‘œ์ค€ ์ž…๋ ฅ ์œ ์ง€
-tTTY(ํ„ฐ๋ฏธ๋„) ํ• ๋‹น
-d๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰
-pํฌํŠธ ํฌ์›Œ๋”ฉ ์„ค์ •
-v๋ณผ๋ฅจ ๋งˆ์šดํŠธ
-eํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ง€์ •

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ณ  bash์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

$ docker run -itd --name container-ubuntu ubuntu:22.04

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

$ docker ps

๐Ÿง‘โ€๐Ÿ’ป ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•˜๊ธฐ

๋‹จ๋ฐœ์„ฑ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด docker exec์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

$ docker exec container-ubuntu echo "hello"

์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์‰˜์— ์ง์ ‘ ์ ‘์†ํ•˜๋ ค๋ฉด -it ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

$ docker exec -it container-ubuntu /bin/bash
root@e39c9c5d19c4:/#

๐ŸŒ Nginx ์„ค์น˜ํ•˜๊ณ  ํฌํŠธ ํฌ์›Œ๋”ฉ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

์ด๋ฒˆ์—” ํ˜ธ์ŠคํŠธ PC์˜ 80๋ฒˆ ํฌํŠธ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์˜ 80๋ฒˆ ํฌํŠธ๋กœ ์—ฐ๊ฒฐํ•œ ๋’ค, Nginx๋ฅผ ์„ค์น˜ํ•ด ์›น ์š”์ฒญ์„ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

$ docker run -itd -p 80:80 --name ubuntu-nginx ubuntu:22.04
$ docker ps

์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•œ ํ›„ Nginx๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

$ docker exec -it ubuntu-nginx /bin/bash
# apt update
# apt-get install -y nginx
# service nginx start
# service nginx status

์ด์ œ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ http://<Docker Host IP> ๋กœ ์ ‘์†ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด Nginx ๊ธฐ๋ณธ ํŽ˜์ด์ง€๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.


โœ… ๋งˆ๋ฌด๋ฆฌ

์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ๋ถ€ํ„ฐ ์ ‘์†, Nginx ์„ค์น˜๊นŒ์ง€ Docker์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•์„ ์‹ค์Šตํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ, ์˜ˆ์‹œ์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ Ubuntu ์ปจํ…Œ์ด๋„ˆ์— Nginx, API ๋“ฑ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹์€ Docker์˜ ๊ถŒ์žฅ ์‚ฌ์šฉ๋ฒ•๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ปจํ…Œ์ด๋„ˆ ํ•˜๋‚˜์—๋Š” **ํ•˜๋‚˜์˜ ์—ญํ• (ํ”„๋กœ์„ธ์Šค)**๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ €ํฌ ์กฐ์ง์—์„œ๋„ ํ•˜๋‚˜์˜ Ubuntu, ํ•˜๋‚˜์˜ Rocky Linux๋ฅผ ์ œ์™ธํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„ ์ปจํ…Œ์ด๋„ˆ๋‹น ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ธ€์—์„œ๋Š” Docker์˜ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ, ๋ณผ๋ฅจ ์„ค์ •, ์ด๋ฏธ์ง€ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•๊ณผ ๊ฐ™์€ ์กฐ๊ธˆ ๋” ์‘์šฉ์ ์ธ ํ™œ์šฉ๋ฒ•์„ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
Kubernetes์™€์˜ ์—ฐ๋™ ์ด์•ผ๊ธฐ๋„ ๊ณง ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค ๐Ÿš€

profile
3๋…„์ฐจ ๋ฐฑ์•ค๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€