-
2. Docker๋? ์ด๋ฏธ์ง(Image)์ ์ปจํ ์ด๋(Container) ์ดํดํ๊ธฐDevOps 2026. 7. 22. 08:49

๐ Docker & Kubernetes ์๋ฆฌ์ฆ
์ด์ ๊ธ์์๋ Docker, Kubernetes, Terraform ๋ฑ DevOps ๊ด๋ จ ๊ธฐ์ ์ ์ญํ ์ ๊ฐ๋จํ ์ ๋ฆฌํ๋ค.
์ด๋ฒ ๊ธ์์๋ Docker์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ด๋ฏธ์ง(Image), ์ปจํ ์ด๋(Container)์ ์ฐจ์ด๋ฅผ ์ ๋ฆฌํ๋ค.
Docker๋?
Docker๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์คํ ํ๊ฒฝ์ ์ปจํ ์ด๋ ๋จ์๋ก ํจํค์งํ๊ณ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ซํผ์ด๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ค๋ฉด ์ฝ๋๋ฟ๋ง ์๋๋ผ ๋ค์๊ณผ ๊ฐ์ ํ๊ฒฝ์ด ํ์ํ๋ค.
- ์ด์์ฒด์
- Java, Node.js ๋ฑ์ ๋ฐํ์
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ํ๊ฒฝ ์ค์
๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ด์ ํ๊ฒฝ์ด ๋ค๋ฅด๋ฉด ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ผ๋ ์คํ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์ ์๋ค.
์๋ฅผ ๋ค์ด ๊ฐ๋ฐ์์ PC์์๋ ์ ์์ ์ผ๋ก ์คํ๋์ง๋ง, ์ด์ ์๋ฒ์์๋ Java ๋ฒ์ ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐจ์ด๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.
Docker๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์คํ์ ํ์ํ ํ๊ฒฝ์ ํจ๊ป ๊ตฌ์ฑํด ์ด๋ฌํ ์ฐจ์ด๋ฅผ ์ค์ฌ์ค๋ค.
์ ํ๋ฆฌ์ผ์ด์ + ๋ฐํ์ + ๋ผ์ด๋ธ๋ฌ๋ฆฌ + ํ๊ฒฝ ์ค์ ---------------- Docker Image๋ง๋ค์ด์ง ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ PC, ํ ์คํธ ์๋ฒ, ์ด์ ์๋ฒ์์ ๋น๊ต์ ๋์ผํ ํ๊ฒฝ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๋ค.
Docker ์ด๋ฏธ์ง๋?
Docker ์ด๋ฏธ์ง(Image)๋ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ ํ๋ฆฟ์ด๋ค.
์ด๋ฏธ์ง์๋ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ํ์ํ ํ์ผ๊ณผ ์ค์ ์ด ํฌํจ๋๋ค.
Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ ์ ์๋ค.
Linux ๊ธฐ๋ฐ ์ด๋ฏธ์ง + Java + Spring Boot ์ ํ๋ฆฌ์ผ์ด์ + ์คํ ์ค์ ์ด๋ฏธ์ง๋ ์ง์ ์คํ๋๋ ๋์์ด ์๋๋ผ, ์ปจํ ์ด๋๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํ๋ ๊ธฐ๋ฐ์ด๋ค.
๋ํ ์ด๋ฏธ์ง๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๊ธฐ ์ ์ฉ์ด๋ฉฐ, ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ ์ ์๋ค.
Image๋ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์คํ ํ๊ฒฝ๊ณผ ์ค์ ์ ๋ฌถ์์ด๋ค.
Docker ์ปจํ ์ด๋๋?
์ปจํ ์ด๋(Container)๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ์คํ ํ๊ฒฝ์ด๋ค.
์ด๋ฏธ์ง๋ฅผ docker run ๋ช ๋ น์ด๋ก ์คํํ๋ฉด ์ปจํ ์ด๋๊ฐ ์์ฑ๋๋ค.
Image โ โ docker run โผ Containerํ๋์ ์ด๋ฏธ์ง๋ก ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์คํํ ์๋ ์๋ค.
Spring Boot Image โโ Container 1 โโ Container 2 โโ Container 3๊ฐ ์ปจํ ์ด๋๋ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์ง๋ง, ์๋ก ๋ ๋ฆฝ๋ ํ๋ก์ธ์ค๋ก ๋์ํ๋ค.
์ปจํ ์ด๋ ํ๋๊ฐ ์ข ๋ฃ๋๋๋ผ๋ ๋ค๋ฅธ ์ปจํ ์ด๋์๋ ์ง์ ์ ์ธ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
์ด๋ฏธ์ง์ ์ปจํ ์ด๋์ ์ฐจ์ด
์ด๋ฏธ์ง์ ์ปจํ ์ด๋์ ์ฐจ์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
๊ตฌ๋ถ ์ด๋ฏธ์ง ์ปจํ ์ด๋ ์ญํ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ธฐ ์ํ ํ ํ๋ฆฟ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ์คํ ํ๊ฒฝ ์ํ ์ฝ๊ธฐ ์ ์ฉ ์คํ ์ค ๋ฐ์ดํฐ ๋ณ๊ฒฝ ๊ฐ๋ฅ ์คํ ์ฌ๋ถ ์ง์ ์คํ๋์ง ์์ ํ๋ก์ธ์ค๋ก ์คํ๋จ ์ฌ์ฌ์ฉ ์ฌ๋ฌ ์ปจํ ์ด๋ ์์ฑ ๊ฐ๋ฅ ์์ฑ·์์·์ข ๋ฃ·์ญ์ ๊ฐ๋ฅ ๊ฐ๋จํ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Image๋ ์คํ์ ์ํ ํ ํ๋ฆฟ์ด๊ณ , Container๋ ์ด๋ฏธ์ง๋ฅผ ์คํํ ์ํ๋ค.
ํด๋์ค์ ๊ฐ์ฒด๋ก ๋น๊ตํ๊ธฐ
Java์ ํด๋์ค์ ๊ฐ์ฒด ๊ด๊ณ๋ก ๋น๊ตํ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค.
Class โ โผ ObjectDocker์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋์๋๋ค.
Image โ โผ Container- ํด๋์ค ํ๋๋ก ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
- ์ด๋ฏธ์ง ํ๋๋ก ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ์์ฑํ ์ ์๋ค.
๋ค๋ง ์์ ํ ๊ฐ์ ๊ฐ๋ ์ ์๋๋ฉฐ, ์ด๋ฏธ์ง์ ์ปจํ ์ด๋์ ๊ด๊ณ๋ฅผ ์ดํดํ๊ธฐ ์ํ ๋น์ ๋ก ๋ณผ ์ ์๋ค.
Docker์ ๊ธฐ๋ณธ ๋์ ํ๋ฆ
Docker๋ฅผ ์ด์ฉํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
Dockerfile โ โ docker build โผ Docker Image โ โ docker run โผ Container๊ฐ ์์์ ์ญํ ์ ๋ค์๊ณผ ๊ฐ๋ค.
Dockerfile
Docker ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ค์ ํ์ผ์ด๋ค.
์ฌ์ฉํ ๊ธฐ๋ฐ ์ด๋ฏธ์ง, ์ ํ๋ฆฌ์ผ์ด์ ํ์ผ, ์คํ ๋ช ๋ น์ด ๋ฑ์ ์์ฑํ๋ค.
docker build
Dockerfile์ ๊ธฐ์ค์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ค.
docker build -t my-app .my-app์ด๋ผ๋ ์ด๋ฆ์ ์ด๋ฏธ์ง๋ฅผ ํ์ฌ ๋๋ ํฐ๋ฆฌ์ Dockerfile์ ๊ธฐ์ค์ผ๋ก ์์ฑํ๋ ๋ช ๋ น์ด๋ค.
docker run
์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์คํํ๋ค.
docker run my-app์ด๋ฏธ์ง๊ฐ ๋ก์ปฌ์ ์๋ค๋ฉด Docker Hub ๋ฑ์ ์ด๋ฏธ์ง ์ ์ฅ์์์ ์ด๋ฏธ์ง๋ฅผ ๋ด๋ ค๋ฐ์ ๋ค ์คํํ ์๋ ์๋ค.
Docker ์ด๋ฏธ์ง ํ์ธํ๊ธฐ
ํ์ฌ ๋ก์ปฌ์ ์ ์ฅ๋ ์ด๋ฏธ์ง ๋ชฉ๋ก์ ๋ค์ ๋ช ๋ น์ด๋ก ํ์ธํ ์ ์๋ค.
docker images์ถ๋ ฅ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
REPOSITORY TAG IMAGE ID CREATED SIZE my-app latest abc123def456 1 hour ago 350MB nginx latest def456abc123 2 weeks ago 190MB์ฃผ์ ํญ๋ชฉ์ ๋ค์๊ณผ ๊ฐ๋ค.
- REPOSITORY: ์ด๋ฏธ์ง ์ด๋ฆ
- TAG: ์ด๋ฏธ์ง ๋ฒ์
- IMAGE ID: ์ด๋ฏธ์ง ์๋ณ๊ฐ
- SIZE: ์ด๋ฏธ์ง ํฌ๊ธฐ
Docker ์ปจํ ์ด๋ ํ์ธํ๊ธฐ
ํ์ฌ ์คํ ์ค์ธ ์ปจํ ์ด๋๋ ๋ค์ ๋ช ๋ น์ด๋ก ํ์ธํ๋ค.
docker ps์คํ ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ํ์ธํ๋ ค๋ฉด -a ์ต์ ์ ์ฌ์ฉํ๋ค.
docker ps -a์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋๋ผ๋ ์๋์ผ๋ก ์ญ์ ๋๋ ๊ฒ์ ์๋๋ค.
๋ฐ๋ผ์ docker ps์๋ ํ์๋์ง ์์ง๋ง, docker ps -a์๋ ๋จ์ ์์ ์ ์๋ค.
์์ฃผ ์ฌ์ฉํ๋ Docker ๋ช ๋ น์ด
# ์ด๋ฏธ์ง ๋ชฉ๋ก ํ์ธ docker images # ์ด๋ฏธ์ง ๋ค์ด๋ก๋ docker pull nginx # ์ปจํ ์ด๋ ์คํ docker run nginx # ์คํ ์ค์ธ ์ปจํ ์ด๋ ํ์ธ docker ps # ์ ์ฒด ์ปจํ ์ด๋ ํ์ธ docker ps -a # ์ปจํ ์ด๋ ์ค์ง docker stop <container-id> # ์ค์ง๋ ์ปจํ ์ด๋ ์์ docker start <container-id> # ์ปจํ ์ด๋ ์ญ์ docker rm <container-id> # ์ด๋ฏธ์ง ์ญ์ docker rmi <image-id>์ฒ์์๋ ๋ค์ ์ธ ๊ฐ์ง ๋ช ๋ น์ด์ ์ญํ ๋ถํฐ ๊ตฌ๋ถํด๋๋ฉด ๋๋ค.
docker images docker ps docker run- docker images: ์ด๋ฏธ์ง ํ์ธ
- docker ps: ์ปจํ ์ด๋ ํ์ธ
- docker run: ์ด๋ฏธ์ง๋ก ์ปจํ ์ด๋ ์์ฑ ๋ฐ ์คํ
docker run๊ณผ docker start์ ์ฐจ์ด
๋ ๋ช ๋ น์ด๋ ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ์คํํ์ง๋ง ๋์์ด ๋ค๋ฅด๋ค.
docker run
์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์คํํ๋ค.
docker run nginx๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ฌ๋ฌ ๋ฒ ์คํํ๋ฉด ์๋ก์ด ์ปจํ ์ด๋๊ฐ ๊ณ์ ์์ฑ๋๋ค.
docker start
๊ธฐ์กด์ ์์ฑ๋์ด ์๋ ์ปจํ ์ด๋๋ฅผ ๋ค์ ์คํํ๋ค.
docker start <container-id>์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๋ช ๋ น์ด ์ญํ docker run ์ด๋ฏธ์ง๋ก ์ ์ปจํ ์ด๋ ์์ฑ ๋ฐ ์คํ docker start ๊ธฐ์กด ์ปจํ ์ด๋ ๋ค์ ์คํ
์ ๋ฆฌ
์ฉ์ด ์ค๋ช Docker ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋ ๋จ์๋ก ์คํํ๊ณ ๊ด๋ฆฌํ๋ ํ๋ซํผ Image ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ ํ๋ฆฟ Container ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ์คํ ํ๊ฒฝ Dockerfile ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ค์ ํ์ผ docker build Dockerfile์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฏธ์ง ์์ฑ docker run ์ด๋ฏธ์ง๋ก ์๋ก์ด ์ปจํ ์ด๋ ์์ฑ ๋ฐ ์คํ Docker์ ๊ธฐ๋ณธ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ฆฌํ ์ ์๋ค.
Dockerfile → Image → ContainerDockerfile์ ์์ฑํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ง๋ ๋ค.
๋ง๋ค์ด์ง ์ด๋ฏธ์ง๋ฅผ ์คํํ๋ฉด ์ปจํ ์ด๋๊ฐ ์์ฑ๋๋ค.
๋ค์ ๊ธ
๋ค์ ๊ธ์์๋ Dockerfile์ ์ฃผ์ ๋ช ๋ น์ด์ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ์ ๋ฆฌํ๋ค.
'DevOps' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ