반응형

IaC/Container 7

Dockerfile 빌드 원칙 & Layer

Overview오늘은 Dockerfile과 Docker 이미지의 Layer 구조에 대해 알아보겠다.Dockerfile은 Docker 이미지를 자동으로 빌드하기 위한 스크립트이며, 각 명령어는 이미지 내에 하나의 Layer를 생성한다. 이 Layer 구조는 Docker 이미지의 재사용성, 효율성, 불변성을 보장하며, 특히 캐시 메커니즘을 통해 빌드 시간을 단축하고 리소스를 절약할 수 있다. 또한, `RUN, COPY, ENV` 등 각 명령어가 어떻게 Layer를 형성하고 캐싱되는지를 통해 실제 Docker 빌드가 어떻게 작동하는지 이해할 수 있었다.실전 예시로는 Standard Dockerfile 구성과 Multi-Stage Build 패턴을 비교해 보았고, 이를 통해 이미지 최적화 방법까지 함께 살펴보겠..

IaC/Container 2024.07.22

Docker Compose: 컨테이너화된 애플리케이션 구성 및 실행 가이드

Overview Docker Compose에 대해서 알아본다.    📅 관련 글2022.02.04 - [IaC/Container] - docker(Ubuntu 20.04) / Portainer2022.03.21 - [IaC/Container] - Docker(CentOS 7.9)2023.04.24 - [IaC/Container] - Dockerfile이란?2023.04.26 - [유용한 IT Tool] - WSL 2 Docker 설치 방법2024.02.02 - [IaC/Container] - Dockerfile 보안 설정(Hadolint)2024.07.09 - [IaC/Container] - Dockerfile 빌드 원칙 & Layer2024.04.22 - [IaC/Container] - Docker ..

IaC/Container 2024.05.02

Dockerfile 보안 설정(Hadolint)

Overview오늘은 Dockerfile을 작성할 때 반드시 고려해야 할 보안 설정과 모범 사례, 그리고 이를 검증하는 도구인 Hadolint에 대해 알아본다.Docker는 가볍고 유연한 컨테이너 환경을 제공하지만, 잘못된 Dockerfile 작성은 보안 취약점을 유발할 수 있다.공식 이미지 사용, 불필요한 패키지 제거, 루트 사용자 대신 일반 사용자로 실행하기, 이미지 캐시 정리 등은 모두 안전한 컨테이너 환경을 위한 필수 체크포인트이다. 또한 Hadolint와 같은 Linter 도구를 활용하면, 사소한 실수나 보안 상의 허점을 사전에 점검하고 개선할 수 있다.실제 예제 기반으로, 보안에 취약한 Dockerfile을 Hadolint로 분석하고, 그 결과를 바탕으로 보안 강화된 버전으로 리팩토링해보자. ..

IaC/Container 2024.02.25

Dockerfile이란?

Overview이번 글에서는 Dockerfile과 그 안에서 핵심적인 역할을 하는 Layer의 개념을 중심으로 학습했다.Dockerfile은 Docker 이미지를 자동으로 빌드하기 위한 스크립트이며, 그 내부의 각 명령어들은 하나의 불변(immutable)한 Layer를 형성한다.FROM, RUN, COPY, CMD 등 Dockerfile의 각 명령은 각각 고유한 Layer를 만든다.Docker는 이 Layer들을 캐시(Caching) 하여 재사용함으로써 빌드 속도를 높이고 효율성을 향상시킨다.Multi-stage 빌드는 빌드 환경과 프로덕션 환경을 분리하여 더 작고 안전한 최종 이미지를 만드는 전략이다.  Layer를 이해하면 이미지 용량 최적화는 물론, 효율적인 캐시 전략과 보안성 높은 빌드 구성도 ..

IaC/Container 2023.04.28

Containerd란?

Overview오늘은 Containerd에 대해 학습하며, Docker에서 분리된 컨테이너 런타임으로서의 Containerd의 역할과Kubernetes와의 연결 구조, 그리고 OCI(Open Container Initiative)와의 관계 등을 정리해보았다.  특히, Docker의 복잡성과 종속성 문제를 해결하기 위해 어떻게 Containerd가 등장했는지,그리고 Kubernetes에서는 어떻게 OCI 기반의 컨테이너 런타임을 지원하게 되었는지를 통해 컨테이너 생태계의 발전 과정을 이해할 수 있었다.         Containerd 등장 배경초기 Docker는 엔진 하나로 모든 기능(CLI, API, Network, Storage, Runtime)을 포함한 복합 구조였음.Kubernetes는 Docke..

IaC/Container 2022.12.22

Docker(CentOS 7.9)

Overview컨테이너 기술은 가상화의 새로운 패러다임으로, 빠른 속도와 가벼운 성능으로 개발 및 운영 환경에서 널리 사용되고 있다.특히 Docker는 이러한 컨테이너 기술을 대표하는 오픈소스 플랫폼으로, 이미지 기반의 애플리케이션 배포 및 실행을 간편하게 만들어준다. 이번 글에서는 CentOS 환경에서 Docker를 설치하고 기본적인 명령어를 사용하는 방법, 그리고 컨테이너를 이미지로 저장하고 Docker Hub에 업로드하는 방법까지 실습을 통해 자세히 알아본다. Ubuntu 환경과의 차이점도 간략히 짚으면서, Docker 명령어의 실전 사용법과 흐름을 자연스럽게 익힐 수 있도록 구성하였다.     📅 관련 글2022.02.04 - [IaC/Container] - docker(Ubuntu 20.04)..

IaC/Container 2022.03.21

docker(Ubuntu 20.04) / Portainer

Overview이 글에서는 Ubuntu에 Docker를 설치하는 방법과 Portainer를 이용한 Docker 관리 방법을 다룬다.Docker는 리눅스 환경에서 컨테이너 기반 가상화 기술을 제공하며, Ubuntu는 Linux 계열 운영체제이므로 바로 설치하여 사용할 수 있다.이제 Docker 설치부터 Portainer 설정까지 차근차근 진행해보자.      📅 관련 글2022.02.04 - [IaC/Container] - docker(Ubuntu 20.04) / Portainer2022.03.21 - [IaC/Container] - Docker(CentOS 7.9)2023.04.24 - [IaC/Container] - Dockerfile이란?2023.04.26 - [유용한 IT Tool] - WSL 2..

IaC/Container 2022.02.04
반응형