๊ฐ๋ฐํ๊ฒฝ๊ณผ ๋ฐฐํฌํ๊ฒฝ์ ๋ถ๋ฆฌ, ์ผ๊ด๋ ์คํ ํ๊ฒฝ
Why Use to Docker?
๋์ปค๋ผ์ด์ฆ๋ฅผ ์ ์ฉํ๊ธฐ์ ์์, Docker๋ฅผ ์ฌ์ฉํ๋ ๊ทผ๋ณธ์ ์ธ ์ด์ ์ ๋ํด ์์๋ณด์.
- ๊ฒฉ๋ฆฌ(Isolation): ๋ก์ปฌ(์ธ์คํด์ค)์ ํ๊ฒฝ๊ณผ ๋ถ๋ฆฌ๋ ๋์ปค ํ๊ฒฝ์ผ๋ก ๋ก์ปฌ ํ๊ฒฝ์ ์ค์ผ์ด๋ ์ถฉ๋์ ๋ฐฉ์งํ๋ค.
- ์ผ๊ด์ฑ(Consistency): ๋ค์ํ ๋ก์ปฌ(์ธ์คํด์ค)์์๋ ๋์ปค๋ฅผ ํตํด ์ผ๊ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ํ ์ ์๋ค.
Docker๊ฐ ์์ ๋:
๋ก์ปฌ(์ธ์คํด์ค) ํ๊ฒฝ๊ณผ App ๊ตฌ๋์ ์ํ ํ๊ฒฝ์ด ์ถฉ๋ํ๊ณ ์ด๋ฆฌ์ ๋ฆฌ ์์ธ๋ค.
- ๋ฌธ์ ์ : ๊ฐ ๊ฐ๋ฐ์์ ๋ก์ปฌํ๊ฒฝ์ด ์๋ก ๋ฌ๋ผ, ์ผ๊ด๋ ํ๊ฒฝ ๊ตฌ์ฑ์ด ์ด๋ ต๋ค.
- Aaron: Window OS์์ MySQL 5.7, JVM 17, 16, 12
- Baron: Linux OS์์ MySQL 8, JVM 17, 8
- Caron: Mac OS์์ PostgreSQL 15, JVM 17
- ์ด๋ฌํ ์ฐจ์ด๋ก ์ธํด ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ๋์ ์ํด ํธ์คํธ ํ๊ฒฝ์ ์ค์ ์ด ํ์ํ๋ฉฐ, ์๋ก ๋ค๋ฅธ ํ๊ฒฝ์์์ ํธํ์ฑ ๋ฌธ์ ๋ ๋ฒ์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์๋ค.
Docker๊ฐ ์์ ๋:
Docker ์ด๋ฏธ์ง(์ปจํ ์ด๋)๋ App๊ณผ ๊ทธ App์ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ํ๊ฒฝ(๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์ค์ ๋ฑ)์ ํฌํจํ ํจํค์ง์ด๋ค.
์ด ํจํค์ง(์ด๋ฏธ์ง)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ๋์ฐ๋ฉด, ์ฑ์ด ๊ตฌ๋๋๋ฉด์ ํ์ํ ๋ชจ๋ ํ๊ฒฝ์ด ์๋์ผ๋ก ์ค์ ๋๋ค. ์ด ์ปจํ ์ด๋๋ ์ฌ์ฉ์ด ๋๋๋ฉด ๊ทธ๋๋ก ์ญ์ ํ ์ ์๋ค. ๋ฐ๋ผ์ ์ผํ์ฉํ์ฒ๋ผ ํ ๋ฒ ์ฐ๊ณ ๋ฒ๋ ค๋ ๋ก์ปฌ ์์คํ (๊ฐ๋ฐ์์ ์ด์ ์ฒด์ ๋ ํ์ผ)์ ํ์ ์ ๋จ๊ธฐ์ง ์๋๋ค.
- ์ฅ์ : Docker๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ ๊ฐ๋ฐ์ ๊ฐ์ ํ๊ฒฝ ์ฐจ์ด๊ฐ ํด๊ฒฐ๋๋ค.
- Docker ์ปจํ ์ด๋๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ํ๊ฒฝ ์ค์ ์ด ์ผ๊ด๋๊ฒ ๊ด๋ฆฌ๋๋ค.
- ๊ฐ๊ฐ์ ํธ์คํธ(์ด์์ฒด์ )๊ฐ Windows, Linux, Mac OS์ด๋๋ผ๋ Docker ์ปจํ ์ด๋ ๋ด๋ถ์์ ๋์ผํ ์ด๋ฏธ์ง์ ์ค์ ์ ์ฌ์ฉํ ์ ์์ด ๊ฐ๋ฐ ํ๊ฒฝ์ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋๋ค.
- ์ด๋ฏธ์ง์์๋ "Segmentation = Consistency"๋ก ํ์ํ๋ฉฐ, ์ปจํ ์ด๋๊ฐ ๊ฒฉ๋ฆฌ๋์ด ํ๊ฒฝ ์ฐจ์ด๊ฐ ์๊ณ ๋ฒ์ ์ถฉ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์์ ๊ฐ์กฐํ๋ค.
- Window OS์์๋ WSL 2๊ฐ ํ์ํ๋ค. Docker๋ฅผ ํตํด ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์๋ค.
Spring Boot์ Database(MySQL) ๋์ปค๋ผ์ด์ฆ & ์ฐ๊ฒฐ
Spring ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์ปค๋ผ์ด์ฆ ํ์ฌ, ์ค์ ํ์ ์์ ๋ฐฐํฌํ๋ ๋ฐฉ์ ๊ทธ๋๋ก ใ ์งํํด ๋ณผ ์์ ์ด๋ค.
- ์ผ๋ฐ์ ์ผ๋ก๋ ๋ก์ปฌ ์ปดํจํฐ ๋ด ์ฌ์ฉํ DBMS(MySQL)์ ์ค์น ํ, IntelliJ๋ฅด ํตํด ๊ฐ๋ฐํ ์๋ฐ๋ฅผ DBMS์ ์ฐ๊ฒฐํ์ฌ ๊ตฌ๋ํ๋ค.
- ํ์ ์์๋ ๊ทธ๊ฒ๊ณผ ๋ฌ๋ฆฌ ๋ชจ๋ ๊ฒ์ด ๋์ปค๋ผ์ด์ฆ ๋์ด ์์ผ๋ฉฐ, ํ๋กํ์ผ์ ๋ฐ๋ผ DB๋ฅผ ๋ฌ๋ฆฌ ์ ์ํ๋ค.
- ๐ค ๋์ปค๋ผ์ด์ฆ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋์๋ ๊ตฌ๋ ๊ฐ๋ฅํ DBMS(MySQL) ๋์ปค์ด๋ฏธ์ง๋ฅผ ๊ตฌ๋ํ๊ณ + ์๋ฐ(JAR) ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ตฌ๋ํ๋ค.
- ์ด ๋์ปค๋ผ์ด์ฆ ๋ฐฉ์์ผ๋ก ์ด๋ฒ ํฌ์คํ ์ค์ต์ ์๋ ์ ์ฐจ๋๋ก ์งํํ๋ค.
1. Docker๋ฅผ ํตํ Spring Boot ๊ตฌ๋ ← Dockerfile์ ํ์ฉํ์ฌ Spring Boot ๋์ปค๋ผ์ด์ฆ
2. Docker๋ฅผ ํตํ Database(MySQL) ๊ตฌ๋ ← docker ๋ช ๋ น์ด๋ฅผ ํ์ฉํ์ฌ Database ๋์ปค๋ผ์ด์ฆ
3. Docker Compose๋ฅผ ํตํ Spring Boot + Database(MySQL) ๋์ ๊ตฌ๋ = 1๋ฒ๊ณผ 2๋ฒ ๊ฒฐํฉ
Spring Boot: Java ๋น๋(:JAR) + Docker Image ๋น๋(:Image)
๋ชฉํ: Docker๋ก Spring Boot ๊ตฌ๋
Java ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ตฌ๋๋๋ ๋ฐฉ์
- JAR ๊ตฌ๋์ ์ํ JRE(JM) ๋ฒ์ ์ค์ : ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐํ Java ์ ํ๋ฆฌ์ผ์ด์
์ ํน์ Java ๋ฒ์ ์ ํ์๋ก ํ๋ฉฐ, ์ด ๋ฒ์ ์์์ ๊ตฌ๋๋๋ค.
- Docker ์ด๋ฏธ์ง์ ๋ฒ ์ด์ค๋ก ์ฌ์ฉํ JRE/JVM ๋ฒ์ ์ ์ค์ ํ๋ค.
- JAR ๋น๋: Java ์์ค ํ์ผ๋ค์ ์ปดํ์ผํ๊ณ ํ๋์ JAR ํ์ผ๋ก ๋น๋ํ๋ค.
- ์ด ๋น๋๋ JAR ํ์ผ์ด ์คํ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํํ์ด๋ค.
- JAR ํ์ผ ์คํ: ์ปดํ์ผ ๋ฐ ๋น๋ ์๋ฃ๋ JAR ํ์ผ์ JRE ๋ช
๋ น์ด๋ฅผ ํตํด ๊ตฌ๋ํ๋ค.
- ์ด ๊ฒฝ์ฐ `java -jar application.jar` ๋ช ๋ น์ด๊ฐ ์ฌ์ฉ๋๋ค.
Docker ์ด๋ฏธ์ง ๊ตฌ์ฑ
- JAR์ ์ํ JRE(JVM) ์ค์ : ์ด๋ค JRE/JVM ๋ฒ์ ์ ์ฌ์ฉํ ๊ฒ์ธ์ง ๋ช ์
- ๊ตฌ๋ํ JAR ํ์ผ: ๋น๋๋ JAR ํ์ผ์ Docker ์ด๋ฏธ์ง์ ํฌํจํ๋ค.
- ๊ตฌ๋ ๋ช ๋ น์ด: JAR ํ์ผ์ ๊ตฌ๋ํ๋ ๋ช ๋ น์ด๋ฅผ ์ ์ํ๋ค.
FROM amazoncorretto:17-alpine
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
- Docker Image์ ์ค์ ๊ตฌ์ฑ: Dockerfile
FROM amazoncorretto:17-alpine
- JAR ๊ตฌ๋ํ JRE (JVM) ๋ฒ์ ์ค์ : ๋ฒ ์ด์ค ์ด๋ฏธ์ง
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
- ๊ตฌ๋ํ JAR ๋น๋: ์์ ๊ฐ๋ฐํ Java๋ฅผ ์ปดํ์ผ ๋ฐ ๋น๋ํ JAR ํ์ผ ๋ช ์
ENTRYPOINT ["java", "-jar", "/app.jar"]
- ๊ตฌ๋: (1) JAR ๊ตฌ๋ํ JRE(JVM) ์์ + (2) ๊ตฌ๋ํ JAR ์น์ด ์ํํ๊ธฐ ์ํ ๋ช ๋ น์ด
1. Spring Boot ๋์ปค๋ผ์ด์ฆ ๋ฐฉ๋ฒ
1. Gradle์ ํตํด ๊ฐ๋ฐํ Java ์ ํ๋ฆฌ์ผ์ด์ ๋น๋ : JAR ํ์ผ
./gradlew clean build
- ์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด, `build/libs/` ๋๋ ํ ๋ฆฌ ์๋์ `demo-0.0.1-SNAPSHOT.jar` ์ด๋ฆ์ JAR ํ์ผ์ด ์์ฑ๋๋ค.
2. ์์ JARํ์ผ์ Dockerfile๋๋ก ๋์ปค ์ด๋ฏธ์ง ๋น๋: Docker Image
- Dockerfile ์์ฑ(์์ ์ฝ๋)
FROM amazoncorretto:17-alpine
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
- Dockerfile ๊ธฐ๋ฐ์ผ๋ก Docker Image ๋น๋
- ์ (.)์ ์๋ฏธ = ํ์ฌ ์์น ๋๋ ํ ๋ฆฌ ๋ด ์กด์ฌํ๋ Dockerfile์ ์ฌ์ฉํ์ฌ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ค๋ ์๋ฏธ.
docker build -t spring-jpa:6th .
- ์์ฑ๋ Docker Image ํ์ธ
docker images spring-jpa
- ์์ฑ๋ Docker Image ์ ์ ์คํ ํ์ธ
docker run -p 1000:8080 -t spring-jpa:6th
์ ๋ช ๋ น์ด๊ฐ ์ ์์ ์ผ๋ก Spring Boot WAS ์๋ฒ๊ฐ ๊ตฌ๋๋๋ค๋ฉด ๋ก์ปฌ ์ปดํจํฐ์๋ 8080์ด ์๋, 1000 ํฌํธ๋ก ์ ์ํ๊ฒ ๋๋ค.
- Docker์ ํฌํธ ๋งคํ:
- `docker run -p 1000:8080 -t spring-jpa:6th` ๋ช ๋ น์ด์์ -p 1000:8080์ ํธ์คํธ์ ํฌํธ 1000์ ์ปจํ ์ด๋์ ํฌํธ 8080์ ๋งคํํ๋ ์ค์ ์ด๋ค.
- ์ด ์ค์ ์ผ๋ก ์ธํด, ํธ์คํธ ์ปดํจํฐ์์๋ http://localhost:1000์ผ๋ก ์ ๊ทผํ๋ฉฐ, ์ค์ ๋ก๋ Docker ์ปจํ ์ด๋ ๋ด๋ถ์์ 8080 ํฌํธ๋ก ์ฐ๊ฒฐ๋๋ค.
- ํฌํธ ์ค๋ช
:
- ์ปจํ ์ด๋ ๋ด๋ถ ํฌํธ (8080): ์ปจํ ์ด๋ ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ ํฌํธ์ด๋ค. Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด ํฌํธ์์ ์๋ฒ๋ฅผ ๊ตฌ๋ํ๊ณ ์๋ค.
- ํธ์คํธ ํฌํธ (1000): ๋ก์ปฌ ์ปดํจํฐ์์ ์ ๊ทผํ ์ ์๋ ํฌํธ์ด๋ค. ์ปจํ ์ด๋ ๋ด๋ถ์ 8080 ํฌํธ๋ก์ ์ ๊ทผ์ด ์ด ํฌํธ๋ฅผ ํตํด ๊ฐ๋ฅํด์ง๋ค.
- A ํ์ ์ IntelliJ์ ๊ฐ์ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ๋ก ๊ตฌ๋ํ๋ ๊ฒฝ์ฐ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ด ํธ์คํธ์ ์ง์ ๋ ํฌํธ์์ ์ง์ ์คํ๋๋ค.
- B ํ์ ์ Docker ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฏธ์ง๋ก ๋น๋ํ๊ณ , ๊ทธ ์ด๋ฏธ์ง๋ฅผ ์ปจํ ์ด๋๋ก ์คํํ ๊ฒฝ์ฐ์ด๋ค. Docker๊ฐ ํธ์คํธ์ ํฌํธ ๋งคํ์ ํตํด ์ธ๋ถ ์ ๊ทผ์ ํ์ฉํ๊ฒ ๋๋ค.
3. Spring ๋์ปค๋ผ์ด์ฆ ์ Dockerfile ๋ด ์ ๋ฌ์ธ์(ARG) ํ์ฉ
์์ ์ฌ์ฉํ Dockerfile์ ๋ณด๋ฉด ARG ๊ตฌ๋ฌธ์ด ๋์ค๋๋ฐ ์ด๋ Dockerfile ๋ฌธ๋ฒ ์ค์ ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒ์ผ๋ก ํ์์ ์ผ๋ก ์๊ณ ์์ด์ผ ํ๋ค.
FROM amazoncorretto:17-alpine
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
- ๋ณธ Dockerfile์ ์ฌ์ฉํ์ฌ Docker Image๋ฅผ ๋น๋ํ์์ ๋ ์๋ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์๋ค.
- `--build-arg` ๊ฐ์ ์ค์ ํ์ง ์์๊ธฐ ๋๋ฌธ์, Dockerfile ๋ด ARG์ ์ค์ ํ ๊ธฐ๋ณธ๊ฐ์ด ๋ค์ด๊ฐ๋ค.
docker build -t spring-jpa:6th .
docker run -p 1000:8080 -t spring-jpa:6th
- ARG๋ฅผ ํ์ฉํ ๋น๋ ๋ฐ ์ํ: Docker Image ๋น๋ ๋ช
๋ น์ด ์ฃผ์
์, Dockerfile ๋ด ARG ์ ๋ฌ์ธ์์ ๊ฐ์ ์ ๋ฌํ๋ค.
- ์์ ์์ฑ๋ `build/libs/demo-0.0.1-SNAPSHOT.jar`์ ํ์ผ์ด๋ฆ์ `RENAMED.jar`๋ก ๋ณ๊ฒฝํ๋ค.
- ์๋ ๋ช ๋ น์ด ์ ๋ ฅ์ ํตํด ARG๋ฅผ ํ์ฉํ์ฌ ๋น๋ํ๋ค.
docker build --build-arg JAR_FILE=build/libs/RENAMED.jar -t spring-jpa:6th .
docker run -p 1000:8080 -t spring-jpa:6th
4. ๋ฏธ์ฌ์ฉ ๋์ปค ์ด๋ฏธ์ง๋ค ์ญ์ ํ๊ธฐ ์ํด ํด๋น ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ์ปจํ ์ด๋ ์ญ์ ํ๊ธฐ
์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ๊ธฐ ์ํด์๋ ํด๋น ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ์ปจํ ์ด๋๋ฅผ ๋จผ์ ์ญ์ ํด์ผ ํ๋ค.
1. ํ์ฌ ์ปจํ ์ด๋ ์ํ ํ์ธ:
- ๋ชจ๋ ์ปจํ ์ด๋ ๋ชฉ๋ก(๊ตฌ๋, ์ ์ง๋ ๊ฒ ํฌํจ)์ ํ์ธํ๋ ค๋ฉด -a ์ต์ ์ ์ฌ์ฉํ๋ค.
docker ps -a
2. ํน์ ์ ๋ณด๋ง ๋ณด๊ธฐ:
- ์ปจํ ์ด๋ ์ด๋ฆ๋ง ํ์ธํ๋ ค๋ฉด --format ์ต์ ์ ์ฌ์ฉํ๋ค:
docker ps -a --format '{{.Names}}'
- `--format ์ต์ ์ ์ด๋ฆ๋ฟ๋ง ์๋๋ผ ์๊ณ ์ถ์ ์ ๋ณด๋ง ํํฐ๋งํด์ ์ฌ์ฉํ ์ ์๋ค.
docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}'
- ๊ฐ๋จํ ์ปจํ ์ด๋ ID๋ง ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด --quiet ๋๋ -q ์ต์ ์ ์ฌ์ฉํ๋ค:
docker ps -a --quiet
3. ์ปจํ ์ด๋ ์ญ์ :
- ํ์ธํ ์ปจํ ์ด๋ ID ๋๋ NAMES๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ์ญ์ ํ๋ค:
docker rm <์ปจํ
์ด๋ ID>
docker rm <์ปจํ
์ด๋ NAMES>
5. ๋ฏธ์ฌ์ฉ Docker ์ด๋ฏธ์ง ์ญ์ : docker rmi
์ปจํ ์ด๋๋ฅผ ์ญ์ ํ๋ค๋ฉด, ๊ทธ๋ค์์ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ ์ฐจ๋ก๋ค. ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด ์ด๋ฏธ์ง๊ฐ ์ด๋ค ๊ฒ๋ค์ด ์๋์ง ํ์ธํ๋ค.
docker images
- ์ญ์ ๋ฅผ ์ํ๋ ์ด๋ฏธ์ง์ IMAGE ID๋ก ์ญ์ ํ๋ค.
- ํ์๋ mysql ์ปจํ ์ด๋ ์ญ์ ํ, mysql ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ๋ค.
docker rmi <IMAGE ID>
6. Dangling ์ด๋ฏธ์ง ์ญ์
`<none>`์ผ๋ก ํ์๋๋ Dangling ์ด๋ฏธ์ง๋ ์ฌ์ฉํ์ง ์๋ ๋ฆฌ์์ค์ด๋ฏ๋ก, prune ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฆฌํ ์ ์๋ค.
Dangling ์ด๋ฏธ์ง๊ฐ ๋ฐ์ํ๋ ์ด์ ๋ ํฌ๊ฒ ๋ ๊ฐ์ง ์ด์ ์ด๋ค.
- ์ด๋ฏธ์ง ์ญ์ ์ ์ปจํ ์ด๋๊ฐ ์ฌ์ฉ ์ค์ด์ด์ ์ญ์ ๋ ๋ชปํ๊ธฐ์ Untagged
- ๋์ผ ์ด๋ฏธ์ง ํ๊ทธ์ ๋ํด ์๋ก์ด ๋ฒ์ ์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ์ ๋, ๊ธฐ์กด ์ด๋ฏธ์ง๊ฐ Untaggedd
1. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์๋ํ๋ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊น๋ํ๊ฒ ์ญ์ ํ๋ ๋ฐฉ๋ฒ:
- ํด๋น ๋ช ๋ น์ด๋ฅผ ํตํด ํน์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ์ปจํ ์ด๋๋ค๋ง ํ๊บผ๋ฒ์ ์ข ๋ฃํ ๋ค, ์ด๋ฏธ์ง๋ฅผ ๊น๋ํ๊ฒ ์ง์ฐ๋ ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์.
docker rm -f $(docker ps -aq --filter ancestor=[IMAGE])
docker rmi [IMAGE]
2. Dangling Image: `<none>`์ผ๋ก ํ๊ธฐ๋์ด ์๋ ์ด๋ฏธ์ง ์ผ๊ด ์ญ์ ๋ฐฉ๋ฒ
- ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด Dangling ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ ์ ์๋ค.
docker image prune
- -f ์ต์ ์ ์ถ๊ฐํ์ฌ ํ๊ธด ์์ด ๊ฐ์ ๋ก ์ญ์ ํ ์ ์๋ค.
docker image prune -f
- ์ถ๊ฐ๋ก ์ค์ง๋ ์ปจํ ์ด๋๋ฅผ ์ญ์ ํ๋ ๋ช ๋ น์ด:
docker container prune
- ์ฌ์ฉํ์ง ์๋ ๋ชจ๋ ๋ฆฌ์์ค ์ ๋ฆฌ(์ปจํ ์ด๋, ์ด๋ฏธ์ง, ๋ณผ๋ฅจ, ๋คํธ์ํฌ):
docker system prune
์ด๋ฒ ํฌ์คํ ์ ํตํด Spring Boot ๋์ปค๋ผ์ด์ฆ ํ๋ ๋ฐฉ๋ฒ๊ณผ + Docker์ ์ปจํ ์ด๋ ์ญ์ , ์ด๋ฏธ์ง์ญ์ ๋ช ๋ น์ด ๋ฑ์ ์์๋ณด์๋ค.
์ด์ด์ ๋ค์ ํฌ์คํ ์์ Docker๋ฅผ ํตํ Database(MySQL)์ ๊ตฌ๋ํ๋ ์์ ์ ์งํํ ์์ ์ด๋ค.
โน๏ธ ์ฐธ๊ณ
[ASAC 6๊ธฐ ๊ฐ์์๋ฃ]
'๐ปDEV-STUDY > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker]Dockerize #3 (0) | 2024.11.04 |
---|---|
[Docker] Dockerize #2 (5) | 2024.11.01 |
[Github Action & Docker]์๋: Github Action์ผ๋ก CI / CD ๋ชจ๋ ์๋ ์ฒ๋ฆฌ #3 (4) | 2024.10.29 |
[GitHub Action & Docker] CD: AWS EC2 ์์ฑ ํ ๋ด๋ถ ์ ์ ํ CI๋ก ๋ง๋ Docker ์ด๋ฏธ์ง ์คํ #2 (2) | 2024.10.29 |
[GitHub Action & Docker] ์๋: Github Action์ผ๋ก CI + ๊ฐ๋ฐ์๊ฐ ์ง์ CD #1 (3) | 2024.10.29 |