목록전체 글 (55)
csct3434

개요앞서 배운 것처럼, 컨테이너 이미지는 여러 개의 레이어(layer)로 구성됩니다. 그리고 한 번 생성된 각 레이어는 변경할 수 없습니다(불변, immutable). 하지만 이게 실제로 무엇을 의미할까요? 그리고 이러한 레이어가 컨테이너의 파일 시스템을 구성하는 방식은 어떻게 될까요?이미지 레이어란?각 이미지 레이어는 파일 시스템의 변경 사항(추가, 삭제, 수정)을 포함하고 있습니다. 예를 들어, 하나의 가상의 이미지를 생각해 봅시다.첫 번째 레이어에서는 기본적인 명령어들과 패키지 매니저(예: apt)를 추가합니다.두 번째 레이어에서는 Python 실행 환경과 패키지 관리자(pip)를 설치합니다.세 번째 레이어에서는 애플리케이션의 requirements.txt 파일을 복사해 넣습니다.네 번째 레이어에서..

Docker Compose란?Docker Compose는 여러 개의 컨테이너로 이루어진 애플리케이션을 쉽게 정의하고 실행할 수 있도록 해주는 도구입니다. 하나의 컨테이너만 실행하는 간단한 애플리케이션은 docker run 명령어로 쉽게 실행할 수 있지만, 데이터베이스, 메시지 큐, 캐시 등 여러 개의 컨테이너를 함께 실행해야 하는 경우 설정이 복잡해질 수 있습니다.Compose를 사용하면 모든 컨테이너와 그 설정을 하나의 compose.yaml 파일에 정의할 수 있으며, 단 한 줄의 명령어로 실행할 수 있습니다.Dockerfile vs. Docker ComposeDockerfile: 컨테이너 이미지를 빌드하는 방법을 정의한 명령어 파일Docker Compose: 여러 개의 컨테이너를 정의하고 실행하는 방..

개요이전 글에서 컨테이너 이미지란 무엇이며 어떻게 작동하는지 알아보았습니다. 하지만 이렇게 생성한 이미지를 어디에 저장할까요? 로컬 컴퓨터에 저장할 수도 있지만, 다른 개발자와 공유하거나 여러 환경에서 사용하려면 어떻게 해야 할까요? 바로 컨테이너 이미지 레지스트리를 활용하면 됩니다.컨테이너 이미지 레지스트리란?컨테이너 이미지 레지스트리는 컨테이너 이미지를 저장하고 공유할 수 있는 중앙 저장소입니다. 레지스트리는 공개 또는 비공개로 운영될 수 있습니다. 대표적인 공개 레지스트리는 Docker Hub이며, 기본적으로 Docker에서 제공하는 기본 레지스트리입니다.Docker Hub 외에도 다양한 컨테이너 이미지 레지스트리가 존재합니다:Amazon Elastic Container Registry(ECR)Az..

Docker 이미지란?Docker 이미지는 컨테이너를 실행하는 데 필요한 모든 파일, 바이너리, 라이브러리, 설정 등을 포함하는 표준화된 패키지입니다. Docker 이미지는 크게 다음과 같은 두 가지 원칙을 따릅니다:이미지는 불변(Immutable)하다한 번 생성된 이미지는 변경할 수 없습니다. 변경이 필요하면 기존 이미지를 기반으로 새로운 이미지를 생성해야 합니다.이미지는 여러 개의 레이어(Layers)로 구성된다이미지의 각 레이어는 특정 파일 변경 사항을 포함합니다.이러한 원칙 덕분에 이미지를 쉽게 확장하고 관리할 수 있습니다. 예를 들어, Python 애플리케이션의 경우 기본 Python 이미지 위에 라이브러리와 애플리케이션 코드가 추가된 형태로 이미지를 빌드할 수 있습니다.Docker 이미지 찾기..

개요웹 애플리케이션을 개발한다고 가정해 보겠습니다. 이 애플리케이션은 다음과 같은 세 가지 주요 컴포넌트로 구성됩니다:React 프론트엔드Python 기반 APIPostgreSQL 데이터베이스이 프로젝트를 개발하려면 Node.js, Python, 그리고 PostgreSQL을 설치해야 합니다. 그런데 팀원들이 모두 같은 버전을 사용하고 있을까요? CI/CD 시스템이나 실제 프로덕션 환경에서도 동일한 버전을 유지할 수 있을까요? 버전 충돌이나 환경 설정 문제를 어떻게 해결할 수 있을까요?이런 문제를 해결하는 것이 바로 컨테이너(Container) 입니다.컨테이너란?컨테이너는 애플리케이션의 구성 요소를 위한 격리된 프로세스입니다. 애플리케이션의 구성 요소(React 프론트엔드, Python API, 그리고 데..

컨테이너 이미지란?컨테이너 이미지는 애플리케이션을 실행하는 데 필요한 모든 파일, 구성 정보 및 종속성을 포함하는 표준화된 패키지입니다. 이러한 패키지는 배포 및 공유가 가능합니다.Docker Hub란?도커 이미지를 인터넷으로 공유하려면 이를 저장하기 위한 공간이 필요할 것입니다. 그 공간이 바로 이미지 저장소 입니다. Docker Hub는 컨테이너 이미지를 저장하고 공유할 수 있는 가장 일반적인 이미지 저장소입니다. Docker Hub를 사용하면 본인이 만든 이미지를 저장할 수 있을 뿐만 아니라, 다른 사용자가 만든 이미지를 사용하여 자신만의 이미지를 생성할 수 있습니다. 이전 가이드에서 다음과 같은 Docker Hub의 공식 이미지를 사용했습니다.node: Node.js 실행 환경 제공mysql: M..

개요Docker Desktop을 설치한 후, 이제 본격적으로 애플리케이션을 개발할 준비가 되었습니다. 이 가이드에서는 다음과 같은 작업을 수행합니다.예시 프로젝트를 클론하고 시작하기백엔드 및 프론트엔드 코드 수정하기변경 사항을 실시간으로 확인하기프로젝트 시작하기Docker 기반 애플리케이션 개발을 시작하려면 먼저 프로젝트를 다운로드해야 합니다.1. 프로젝트 클론아래 명령어를 실행하여 GitHub에서 예제 프로젝트를 클론하거나, 프로젝트 ZIP 파일을 다운로드합니다. git clone https://github.com/docker/getting-started-todo-app2. 프로젝트 디렉터리 이동클론한 프로젝트 디렉터리로 이동합니다. cd getting-started-todo-app3. Docker C..

개요이 가이드는 Docker의 기본 개념을 익히고, Docker Desktop을 설치하여 첫 번째 컨테이너를 실행하는 방법을 소개합니다. Docker의 컨테이너화 기술을 활용하면 개발 환경을 보다 효율적으로 관리하고 배포할 수 있습니다.학습 목표Docker Desktop 설치하기첫 번째 컨테이너 실행하기1. Docker Desktop 설치Docker Desktop은 컨테이너 개발을 위한 종합적인 패키지로, 이미지를 빌드하고 컨테이너를 실행할 수 있는 환경을 제공합니다.설치 대상 OSMac: Apple Silicon 다운로드 | Intel 다운로드 | 설치 가이드Windows: 다운로드 | 설치 가이드Linux: 설치 가이드설치 후 설정설치가 완료되면 Docker Desktop을 실행하고 설정을 완료합니다..
웹 개발 및 IT 분야에서 자주 언급되는 개념 중 하나가 바로 URL(Uniform Resource Locator), URI(Uniform Resource Identifier), URN(Uniform Resource Name)입니다. 이 세 가지 개념은 종종 혼용되지만, 각각의 역할과 의미는 분명히 다릅니다. 이번 글에서는 이들의 차이점을 명확하게 정리하고, 실제 사례를 통해 이해를 돕겠습니다.1. URI(Uniform Resource Identifier): 웹 자원을 식별하는 최상위 개념URI는 인터넷 상의 특정 자원을 식별하는 모든 문자열을 의미합니다. 즉, URL과 URN을 포함하는 상위 개념이며, 자원이 어디에 있든 또는 어떤 방식으로 접근하든 고유하게 식별할 수 있어야 합니다.URI의 일반적인 ..
CAP 이론에 대해 들어봤지만, 정작 CA가 왜 불가능한지, A와 P의 차이는 무엇인지 확실하게 설명할 수 없었습니다. 그래서 이번 기회에 CAP 이론을 제대로 정리해보고자 합니다.1. CAP 이론이란?CAP 이론은 분산 시스템에서는 Consistency(일관성), Availability(가용성), Partition Tolerance(분할 내성) 중 최대 두 가지만 만족할 수 있다는 이론입니다. 즉, 세 가지를 동시에 만족하는 완벽한 분산 시스템은 존재할 수 없습니다.CAP의 구성 요소Consistency (일관성)모든 노드가 항상 동일한 최신 데이터를 반환해야 한다.The property that ensures all nodes in a distributed system see the same data..