본문 바로가기

반응형

전체 글

(183)
Spring Boot 도커 배포 실습 — Dockerfile 작성부터 서버 실행까지 한 줄 요약Spring Boot 앱을 도커 이미지로 만들면 서버 환경과 상관없이 같은 방식으로 실행할 수 있어요. 공식 문서의 계층 추출 방식을 쓰면 이미지 캐시도 효율적으로 활용할 수 있어요.1. 핵심 개념 1.1 Spring Boot를 도커로 배포한다는 것Spring Boot 앱은 보통 실행 가능한 jar 파일 하나로 빌드돼요. 이 jar와 Java 실행 환경을 함께 이미지로 묶으면, 서버에 Java를 따로 설치하지 않아도 앱을 실행할 수 있어요.uber jar: 앱 코드와 모든 의존 라이브러리를 하나로 묶은 jar 파일이에요. Spring Boot가 기본으로 만드는 형태예요. 1.2 왜 계층(layer)을 나누나요Spring Boot 공식 문서는 uber jar를 그대로 이미지에 넣는 방식의 단점을..
GitHub Actions로 도커 이미지 빌드·푸시하기 — GHCR 자동 업로드 파이프라인 만들기 한 줄 요약GitHub Actions 워크플로를 만들면 코드를 push할 때마다 도커 이미지가 자동으로 빌드되어 GitHub Container Registry(GHCR)에 올라가요.1. 핵심 개념 1.1 무엇을 자동화하나요지금까지 손으로 하던 아래 과정을 GitHub Actions가 대신해요.코드 push → 이미지 빌드 → 태그 부여 → GHCR 업로드GitHub Actions의 기본 구성(워크플로, 잡, 스텝)은 이전 글에서, CI/CD 개념은 CI/CD란 무엇인가? 글에서 다뤘어요. 1.2 사용하는 공식 액션공식 문서 예시는 Docker가 제공하는 액션을 사용해요.액션 역할actions/checkout저장소 코드를 러너로 내려받아요docker/login-action레지스트리에 로그인해요docker/..
GitHub Actions 사용법 기초 — 워크플로·잡·스텝 개념 한 번에 정리 한 줄 요약GitHub Actions는 저장소에서 일어나는 일을 계기로 빌드, 테스트, 배포를 자동 실행하는 GitHub의 CI/CD 플랫폼이에요.1. 핵심 개념1.1 GitHub Actions란공식 문서는 GitHub Actions를 빌드, 테스트, 배포 파이프라인을 자동화하는 CI/CD 플랫폼으로 설명해요. 풀 리퀘스트마다 빌드·테스트를 돌리거나, 병합된 코드를 운영 환경에 배포할 수 있어요.CI/CD 개념 자체는 CI/CD란 무엇인가? 글에서 다뤘어요. 이 글은 GitHub Actions의 구성 요소와 작성법에 집중해요. 1.2 구성 요소구성 요소 설명워크플로(workflow)자동화 작업 전체예요. YAML 파일로 정의해요이벤트(event)워크플로를 시작시키는 사건이에요 (push, 풀 리퀘스트 등..
멀티 스테이지 빌드로 도커 이미지 크기 줄이기 — 빌드 도구는 두고 결과물만 담기 한 줄 요약멀티 스테이지 빌드는 Dockerfile 하나에서 빌드 단계와 실행 단계를 나누는 방법이에요. 최종 이미지에는 실행에 필요한 결과물만 남아요.1. 핵심 개념 1.1 멀티 스테이지 빌드란공식 문서에 따르면 멀티 스테이지 빌드는 Dockerfile 안에서 FROM을 여러 번 쓰는 방식이에요.FROM 한 줄이 새로운 **스테이지(단계)**의 시작이에요.스테이지마다 다른 베이스 이미지를 쓸 수 있어요.앞 스테이지의 결과물 중 필요한 것만 골라 다음 스테이지로 복사해요.스테이지(stage): Dockerfile 안에서 FROM으로 시작하는 하나의 작업 구간이에요. 1.2 왜 중요한가Java 앱을 빌드하려면 JDK와 빌드 도구가 필요해요. 하지만 실행에는 JRE와 jar 파일만 있으면 돼요.멀티 스테이지..
컨테이너 레지스트리란? Docker Hub와 GHCR로 이미지 저장·공유하기 한 줄 요약컨테이너 레지스트리는 도커 이미지를 저장하고 공유하는 저장소예요. 이미지를 레지스트리에 올려 두면 다른 서버에서 같은 이미지를 내려받아 실행할 수 있어요.1. 핵심 개념1.1 컨테이너 레지스트리란공식 문서는 이미지 레지스트리를 컨테이너 이미지를 저장하고 공유하는 중앙 저장소로 정의해요. 공개(public) 또는 비공개(private)로 운영할 수 있어요.Docker Hub는 누구나 쓸 수 있는 공개 레지스트리이고, 도커의 기본 레지스트리예요. 1.2 레지스트리, 리포지토리, 태그세 용어는 비슷해 보이지만 범위가 달라요.용어의미레지스트리(registry)이미지를 저장·관리하는 서비스 전체예요 (예: Docker Hub)리포지토리(repository)레지스트리 안에서 관련 이미지를 모아 둔 단위예..
Docker Compose 사용법 — 여러 컨테이너를 파일 하나로 관리하기 한 줄 요약Docker Compose는 여러 컨테이너로 된 서비스를 YAML 파일 하나로 정의하고, 명령 한 줄로 함께 실행하는 도구예요.1. 핵심 개념1.1 Docker Compose란Docker Compose는 여러 컨테이너로 구성된 애플리케이션을 정의하고 실행하는 도구예요. 서비스, 네트워크, 볼륨 설정을 하나의 파일에 적어 두고 관리해요.YAML: 들여쓰기로 구조를 표현하는 설정 파일 형식이에요.서비스(service): Compose 파일에서 정의하는 컨테이너 단위예요. 웹 앱, DB가 각각 하나의 서비스예요. 1.2 왜 중요한가컨테이너를 여러 개 쓰면 docker run 명령이 길어지고 순서도 신경 써야 해요. Docker Compose를 쓰면 이 설정이 파일로 남아요.실행 방법이 파일로 기록되..
도커 네트워크 개념 정리 — 컨테이너끼리 통신하는 방법과 포트 공개 한 줄 요약도커 네트워크는 컨테이너끼리, 그리고 외부와 통신하는 길을 정하는 기능이에요. 직접 만든 브리지 네트워크를 쓰면 컨테이너 이름으로 서로 찾을 수 있어요.1. 핵심 개념1.1 도커 네트워크란컨테이너는 기본적으로 격리된 환경에서 실행돼요. 도커 네트워크는 격리된 컨테이너가 누구와, 어떤 경로로 통신할지 정해 줘요.네트워크 드라이버: 도커 네트워크의 동작 방식을 정하는 종류예요. 드라이버에 따라 통신 범위가 달라져요.드라이버설명bridge기본 드라이버예요. 같은 호스트 안의 컨테이너끼리 통신해요host컨테이너가 호스트의 네트워크를 그대로 사용해요. 네트워크 격리가 없어요none네트워크를 연결하지 않아요overlay여러 도커 호스트에 있는 컨테이너를 연결해요macvlan컨테이너에 MAC 주소를 부여해..
도커, Dockerfile, 도커파일작성법, 도커빌드, 빌드캐시, dockerignore, CMD ENTRYPOINT 차이, 도커이미지, 컨테이너, DevOps 한 줄 요약Dockerfile은 도커 이미지를 만드는 순서를 적은 설계도예요. 명령어의 역할과 빌드 캐시 규칙을 알면 빌드가 빨라지고 결과도 예측하기 쉬워져요.1. 핵심 개념1.1 Dockerfile이란Dockerfile은 이미지를 만들기 위한 명령을 순서대로 적은 텍스트 파일이에요. docker build 명령이 이 파일을 위에서부터 읽어 이미지를 만들어요.빌드 컨텍스트: docker build를 실행할 때 도커에 함께 전달되는 파일 묶음이에요. 보통 명령을 실행한 폴더 전체예요. 이미지와 레이어의 기본 개념은 도커 개념 정리 글에서 다뤘어요. 이 글은 Dockerfile을 어떻게 작성하는지에 집중해요.1.2 왜 중요한가Dockerfile은 이미지를 다시 만들 수 있는 근거예요. 같은 파일로 빌드하면 ..

반응형