#docker
노트 9개
DevOps
개발한 서비스를 안정적으로 빌드·배포·운영하기 위한 인프라와 자동화 지식 모음.
DevOps
클라우드 네이티브와 코드형 인프라클라우드 네이티브를 개발 프로세스·애플리케이션 구조·배포 단위·인프라의 네 축으로 정의하고, 가상화에서 IaaS·PaaS·컨테이너로 이어진 클라우드의 변천, 전환 로드맵(CNCF 랜드스케이프의 여섯 영역), 전통적 구성 관리와 코드형 인프라(IaC)·GitOps의 차이와 대표 도구를 정리했다.
DevOps
CI/CD코드 변경을 자동으로 빌드·테스트하고(CI) 배포까지 이어 주는(CD) 파이프라인의 개념과 단계, dev·QA·UAT·운영으로 산출물을 승격하는 흐름, 파이프라인 설계 시 고려할 것, GitHub Actions 예시와 CI 비밀 값 관리, Docker 이미지 빌드·태그 전략·층 캐시·보안 스캔 게이트·Testcontainers.
DevOps
Docker 네트워크와 볼륨Docker 네트워크 드라이버(bridge·host·none·overlay·macvlan)의 동작, bridge 네트워크의 veth·NAT 원리, 사용자 정의 네트워크와 내장 DNS, 포트 공개(-p)와 EXPOSE의 차이, 컨테이너 간 통신 제한, 그리고 볼륨·바인드 마운트·tmpfs의 차이와 볼륨 수명·드라이버·읽기 전용 마운트, 이미지 층을 저장하는 스토리지 드라이버를 정리한다.
DevOps
Docker 컨테이너 운영: 자원 제한, 보안, 로그, 장애 진단cgroups로 CPU·메모리·I/O·PID를 제한하는 옵션과 CPU 스로틀링·OOM의 원리, 컨테이너 격리를 보강하는 비root 실행·rootless 모드·capability·seccomp·AppArmor·SELinux, Docker 소켓과 Docker in Docker의 위험, 비밀 값 전달과 이미지 스캔·서명, 로깅 드라이버와 로그 회전, docker stats·events·Prometheus 모니터링, 종료 코드·재시작 정책·exec·diff·cp·prune을 이용한 장애 진단을 정리한다.
DevOps
Docker Compose: 여러 컨테이너 묶어 띄우기compose.yaml 하나로 웹 서버·애플리케이션·DB 컨테이너를 정의하고 함께 띄우는 Docker Compose의 최상위 구성, 서비스 주요 키, 환경 변수 관리(.env·environment·env_file 우선순위), depends_on과 healthcheck로 시작 순서 제어, 네트워크 분리, 볼륨 공유, 여러 파일 겹치기, 스케일링, secrets, 점검 명령.
DevOps
Dockerfile 작성과 컨테이너의 PID 1이미지와 컨테이너의 관계와 층 구조, Dockerfile 명령(RUN·CMD·ENTRYPOINT 조합, COPY·ADD, ARG·ENV, WORKDIR, USER, HEALTHCHECK), 베이스 이미지(Debian·Alpine·distroless·scratch) 고르기, 컨테이너가 바로 꺼지는 이유와 PID 1·좀비 프로세스 문제(tini·--init), 디버깅 요령, 멀티 스테이지 빌드·빌드 캐시·BuildKit, 태그 전략·레지스트리·댕글링 이미지·save·load 같은 이미지 관리.
DevOps
Packer와 머신 이미지 굽기Packer는 템플릿 하나로 AMI·GCE 이미지·VM·컨테이너 이미지를 자동으로 만드는 HashiCorp의 이미지 빌더다. 소스(빌더)로 임시 머신을 띄우고 프로비저너로 설정한 뒤 스냅숏을 떠서 후처리기로 넘기는 흐름, HCL2 템플릿과 packer init·build, Dockerfile과의 차이, 골든 이미지와 불변 인프라에서의 쓰임을 정리한다.
DevOps
VM과 컨테이너OS 전체를 가상화하는 VM과 애플리케이션 단위로 격리하는 Docker 컨테이너의 차이, Docker의 핵심 개념과 클라이언트·데몬·레지스트리 구조, dockerd·containerd·runc 런타임 계층과 OCI 표준, Docker와 쿠버네티스의 관계, 컨테이너가 많아질 때 필요한 오케스트레이션·오토 스케일링(Swarm·Kubernetes·ECS), MSA에서의 장단점을 다룬다.