본문 바로가기
728x90

[스파르타코딩클럽]/Docker & CICD8

Docker Image 심화 Dockerfile 최적화 빠르게 만들기: Docker 이미지 만드는 시간을 줄일 수 있음 이미지 크기 줄이기: 저장 공간을 덜 차지하고 다운로드나 전송할 때도 더 빨라짐 재사용성 높이기: 여러 번, 여러 곳에서 쓸 수 있어서 편리 보안 강화 유지보수 쉽게: 나중에 수정하거나 업데이트할 때 훨씬 쉬움 # build 는 gradle 이미지에서 `builder`라는 이름으로. FROM gradle:8.5-jdk21-alpine AS builder WORKDIR /app COPY ./ ./ RUN gradle clean bootJar # App FROM eclipse-temurin:21-jre-alpine WORKDIR /app COPY --from=builder /app/build/libs/spring-bo.. 2024. 3. 19.
Docker Network Docker Network 이해 도커 컨테이너끼리 서로 통신할 수 있게 도와주는 네트워크 컨테이너 네트워크 모델(CNM) : 도커에서 네트워크를 쉽고 효율적으로 구축할 수 있도록 도와주는 네트워크 모델 샌드박스: 컨테이너를 외부 세계로부터 완전히 분리 엔드포인트: 외부 세계와 샌드박스 사이의 연결점 네트워크: 엔드포인트에서 다른 엔드포인트로 데이터를 보내는 길 실습 # back, front 네트워크 생성 docker network create --driver=bridge back docker network create --driver=bridge front # 각 서비스를 생성 및 실행 docker run --name=webapi -itd --net=front ubuntu:14.04 docker run .. 2024. 3. 19.
Docker volume Volume 사용 이유 데이터 영속성: 컨테이너가 사라져도 데이터는 그대로 남음 같은 데이터를 여러 컨테이너가 사용 데이터를 백업하고 옯기기 쉬움 많은 양의 데이터를 다룰 때 더 빠르게 처리해줌 데이터를 안전하게 보관: 중요한 데이터를 컨테이너 밖에 따로 안전하게 보관 코드와 데이터를 따로: 코드를 바꿔도 데이터는 그대로 유지. 개발 및 운영에 편리 volume 컴퓨터의 특정 폴더 (대부분 /var/lib/docker/volumes/ 라는 곳)에 Docker가 관리해서 사용하는 데이터를 여기에 저장 볼륨의 좋은 점 백업하고 옮기기 쉬움 Docker 명령어로 관리 어디서나 잘 작동 여러 컨테이너와 함께 사용 가능 볼륨 드라이버로 더 많은 기능을 추가 가능 Mac이나 Windows에서 더 빠르게 돌아감 bi.. 2024. 3. 19.
Docker 모니터링&로깅 도커 모니터링 컨테이너의 성능, 사용중인 자원(CPU, 메모리), 네트워크 사용량 같은 것들을 확인 모니터링 정보를 통해 문제를 빨리 발견하고 해결할 수 있음 컨테이너를 효율적으로 관리하고 최적화할 수 있음 docker stats : Docker에서 제공하는 간단하고 실용적인 모니터링 도구 CPU 사용률, 메모리 사용량, 네트워크 I/O, 디스크 I/O 등 여러 중요한 정보를 보여줌 특정 컨테이너의 상태만 보고 싶다면 docker stats [컨테이너 이름 또는 ID] htop : 시스템 모니터링의 필수 도구 리눅스 시스템을 모니터링하는데 사용되는 도구 주요 기능 실시간 모니터링: CPU, 메모리, 스왑 사용량을 실시간으로 볼 수 있음 프로세스 관리: 실행 중인 프로세스를 쉽게 확인하고 필요하면 종료시킬.. 2024. 3. 19.
Docker Compose Docker Compose 사용 이유 편하게 설정: 여러 컨테이너를 한 번에 쉽게 설정 가능 자동 배포: 설정 파일이 있으면 Docker Compose가 알아서 컨테이너들을 만들어 주고 실행 의존성 관리: 컨테이너들이 서로 의존하는 관계 관리 모니터링과 로깅 확장성: 여러 컨테이너를 하나의 그룹으로 관리하고 확장하기 쉬움 유연성: 개발 환경, 테스트 환경, 실제 운영 환경에서도 같은 설정 파일을 써서 일관성을 유지 가능 보안 강화: 컨테이너들의 네트워크를 분리해서 외부로부터의 접근을 제한 유지보수가 쉬워요: 설정 파일 하나로 컨테이너들을 관리하기 때문에 파일만 수정하면 됨 Docker Compose 사용 환경 개발 환경에서 앱을 따로 떼어 놓고 실행하고 테스트할 수 있는 환경 Compose 파일은 앱이 .. 2024. 3. 19.
Dockerfile Dockerfile이란? 앱을 컨테이너로 만들 때 이미지를 만드는 용도로 사용 Dockerfile을 작성하여 똑같은 앱 환경을 쉽게 만들고 그 과정을 자동화할 수 있음 예시 # Dockerfile FROM ubuntu:latest MAINTAINER Your Name RUN apt-get update && apt-get install -y nginx COPY index.html /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] FROM: 베이스 이미지를 선택 MAINTAINER: 이미지를 만든 사람의 정보 RUN: 이미지에 명령을 실행하여 파일을 추가하거나 삭제 COPY: 파일을 이미지에 복사 EXPOSE: 컨테이너가 노출할 포트를 설.. 2024. 3. 18.