Docker

GHCR(GitHub Container Registry)이란 — Docker Hub와 차이, 사용법, 비용
7 분 소요

GHCR(GitHub Container Registry)이란 — Docker Hub와 차이, 사용법, 비용

ghcr.io의 정체부터 정리합니다. GHCR이 무엇인지, Docker Hub와 무엇이 다른지(풀 제한, 권한 모델, 요금), PAT 발급부터 push/pull까지의 사용법, 그리고 GitHub Actions 연동과 운영 팁까지 한 편으로 다룹니다.

도커 실전 강좌 #6 클라우드 배포 — Fly.io / Railway / ECS — 트랙 마무리
8 분 소요

도커 실전 강좌 #6 클라우드 배포 — Fly.io / Railway / ECS — 트랙 마무리

빌드해 푸시한 이미지를 실제 운영에 올리는 마지막 단계를 다룹니다. Fly.io , Railway , ECS Fargate 세 옵션의 갈림길과 각각의 배포 흐름, 시크릿 관리, 헬스체크와 zero-downtime, 그리고 트랙 24편을 회수하며 마무리하겠습니다.

도커 실전 강좌 #5 레지스트리 푸시와 태그 전략 — :latest의 함정
9 분 소요

도커 실전 강좌 #5 레지스트리 푸시와 태그 전략 — :latest의 함정

레지스트리 선택(GHCR vs Docker Hub vs ECR)과 태그 전략을 다룹니다. :latest가 왜 운영에서 위험한지, semver와 SHA 태그의 의미, immutable 태그, retention 정책, 이미지 사이즈 관리까지 푸시 후의 운영 포인트를 정리합니다.

도커 실전 강좌 #4 CI에서 이미지 빌드 — GitHub Actions와 BuildKit 캐시
8 분 소요

도커 실전 강좌 #4 CI에서 이미지 빌드 — GitHub Actions와 BuildKit 캐시

GitHub Actions에서 도커 이미지를 빌드하고 푸시하는 정석을 다룹니다. docker/build-push-action, BuildKit의 GHA 캐시(type=gha), 멀티 아키(amd64+arm64) 빌드, 빌드 시점 secrets, 빌드 시간 최적화까지 한 워크플로우 파일에 정리합니다.

도커 실전 강좌 #3 React/Next.js 빌드 컨테이너 — standalone과 NEXT_PUBLIC의 의미
8 분 소요

도커 실전 강좌 #3 React/Next.js 빌드 컨테이너 — standalone과 NEXT_PUBLIC의 의미

Next.js 앱을 컨테이너에 담는 흐름을 정리합니다. standalone output을 쓴 deps → build → runner 세 단계, NEXT_PUBLIC 환경변수가 빌드 시점에 굳는 문제, 정적 export 옵션, Vite 같은 SPA를 nginx로 호스팅하는 방식까지 살펴보겠습니다.

도커 실전 강좌 #2 Django + PostgreSQL compose — 두 컨테이너 한 묶음
9 분 소요

도커 실전 강좌 #2 Django + PostgreSQL compose — 두 컨테이너 한 묶음

Django 앱과 PostgreSQL을 docker compose 한 파일에 묶어보겠습니다. 마이그레이션 entrypoint, depends_on과 healthcheck의 연결, 데이터 볼륨, .env 분리, collectstatic까지 compose가 풀어주는 작업을 운영 형태로 정리합니다.

도커 실전 강좌 #1 FastAPI 컨테이너화 — uv,멀티스테이지,non-root
9 분 소요

도커 실전 강좌 #1 FastAPI 컨테이너화 — uv,멀티스테이지,non-root

실전 시리즈의 첫 글입니다. 가장 흔한 시나리오인 FastAPI 앱을 컨테이너로 묶어보겠습니다. uv 기반 슬림 베이스, 멀티스테이지로 빌드 의존성과 런타임 의존성 분리, non-root 사용자, HEALTHCHECK까지 운영에 바로 올릴 수 있는 형태로 정리합니다.

도커 고급 강좌 #6 프로덕션 운영 — graceful shutdown, healthcheck, restart
8 분 소요

도커 고급 강좌 #6 프로덕션 운영 — graceful shutdown, healthcheck, restart

PID 1의 신호 처리, SIGTERM 그레이스풀 종료의 정확한 흐름, init과 dumb-init의 쓰임, restart 정책 깊이, liveness vs readiness 개념을 다룹니다. 한 컨테이너를 프로덕션에서 안정적으로 운영할 때 필요한 잔주름을 한곳에 모으겠습니다. 도커 고급 시리즈를 마무리합니다.

도커 고급 강좌 #5 리소스 제한과 cgroups
8 분 소요

도커 고급 강좌 #5 리소스 제한과 cgroups

컨테이너의 메모리 한계, CPU 한계, OOMKilled의 진단, JVM과 Node 같은 런타임이 컨테이너 한계를 어떻게 인식하는지, 그리고 ulimit / pids로 다른 격리 수단까지 정리합니다. cgroups v2 위에서 도는 한계의 정확한 동작을 정리하겠습니다.

도커 고급 강좌 #4 SBOM과 서명 — 공급망 보안의 입구
7 분 소요

도커 고급 강좌 #4 SBOM과 서명 — 공급망 보안의 입구

이 이미지 안에 무엇이 들어 있는가를 기계가 읽을 수 있는 형태(SBOM)로 만들고, 그 이미지를 누가 만들었는지 cosign 서명으로 검증합니다. xz 사고 이후 표준이 된 공급망 보안 도구 한 묶음을 정리합니다.

도커 고급 강좌 #3 이미지 보안 — non-root, distroless, Trivy 스캔
8 분 소요

도커 고급 강좌 #3 이미지 보안 — non-root, distroless, Trivy 스캔

컨테이너 보안의 기본 도구를 한곳에 모으겠습니다. USER로 비특권 사용자 떨어트리기, read-only 루트와 tmpfs, capabilities drop, distroless로 공격 표면 좁히기, Trivy/Grype의 취약점 스캔, hadolint의 Dockerfile 린트까지 정리합니다.

도커 고급 강좌 #2 멀티 아키텍처 이미지 — amd64와 arm64 한 묶음
7 분 소요

도커 고급 강좌 #2 멀티 아키텍처 이미지 — amd64와 arm64 한 묶음

Apple Silicon에서 빌드한 이미지가 운영 서버에서 안 뜨는 사고는 멀티 아키텍처 빌드 한 줄로 사라집니다. manifest list의 정체, QEMU emulation의 비용, 네이티브 ARM 빌더, 그리고 docker buildx imagetools로 결과를 검증하는 방법까지 정리합니다.