본문 바로가기

Docker

[Docker] docker-compose 단일 서버에서 여러 컨테이너를 프로젝트 단위로 묶어서 관리할 수 있게 도와주는 기능이다. docker-compose.yml 파일을 통해 사용하는 컨테이너를 명시적으로 관리할 수 있다. 프로젝트 단위로 도커 네트워크와 볼륨을 관리할 수 있다. 프로젝트 내 서비스 간 의존성 정의가 가능하다. 각각의 서비스 명으로 네트워크 상에서 호출할 수 있는 서비스 디스커버리 자동화 기능을 제공한다. 손쉽게 컨테이너를 수평 확장할 수 있다. 주요 사용 목적 로컬 개방 환경 구성 자동화된 테스트 환경 구성 단일 호스트 내 컨테이너를 선언적 관리 Docker-Compose 구성 프로젝트 docker-compose에서 다루는 워크스페이스 단위 함께 관리하는 서비스 컨테이너의 묶음을 의미한다. 프로젝트 단위로 기본 도커 네트워크.. 더보기
[Docker] Dockerfile Dockerfile Layer 구조로 변경 사항이 생기면 기존 Layer 위에 Layer로 쌓인다. Layer 구조를 사용함으로써 간단하게 새로운 결과를 만들 수 있다. 캐싱을 사용하여 이전의 작업을 중복 실행하지 않을 수 있다. Dockerfile을 빌드해서 Docker Image를 생성할 수 있다. Dockerfile 예시 FROM ndoe:12-alpine RUN apk add --no-cache python3 g++ make WORKDIR /app COPY . . RUN yarn install --production CMD ["node", "src/index.js"] Dockerfile 문법 주석: # 문법 기본 구조: [INSTRUCTION] [arguments] 환경 변수 ENV [변수명]=[.. 더보기
[Docker] Docker 기본 Docker 구성 요소 docker daemon을 docker engine이라고 부른다. Docker Image와 Docker Container는 1 : N 관계이다. Docker Image Docker에서 사용하는 가장 기본적인 단위 컨테이너를 생성할 때 필요한 요소로, 컨테이너의 목적에 맞는 바이너리와 의존성이 설치되어 있다. 여러 개의 계층으로 된 바이너리 파일로 존재한다. 저장소 이름/이미지 이름:이미지 태그로 구성된다. Pull/Push 시에 저장소 이름을 생략하면 기본 저장소인 도커 허브로 인식한다. 도커 이미지 태그를 생략하면 최신 리버전을 뜻하는 lastest로 인식한다. Docker Container Docker에서 사용하는 가장 기본적인 단위 호스트와 다른 컨테이너로부터 격리된 시스템 .. 더보기
[Docker] 도커란? Docker 도커는 애플리케이션의 실행에 필요한 환경을 하나의 이미지로 만들어, 해당 이미지를 사용하여 다양환 환경에서 독자적인 앱 실행 환경을 구축하고 운영하기 위한 오픈 소스 플랫폼이며 컨테이너의 가장 대표적인 구현체이다. * 기업들은 어떻게 서비스를 효율적으로 운영 / 배포할 것인가? 초기 컴퓨터 + OS -> 애플리케이션을 구동하기 위해 필요한 라이브러리, 프레임워크를 OS에 설치해서 운영/배포 가상화 : 비용, 컴퓨팅 자원 효율성 증가 다수의 애플리케이션은 필요로 하는 라이브러리, 프레임워크가 다를 수 있다는 문제점을 해결 다수의 애플리케이션을 각 각의 가상화 머신에서 격리시켜 운영/배포 Virtual Machine - Host OS 위에 Hypervisor -> 각 Virtual Machine.. 더보기