개발/Docker

    [Docker] Dockerfile

    1. Docker 도커가 없다면 NodeJS환경에서 프로젝트 진행시 npm install로 모듈들을 설치해줘야 한다. 하지만 도커가 있다면 이들을 설치하지 않고 사용할 수 있다. 2. Dockerfile Dockerfile이란 파일명을 도커가 식별한다. Dockerfile에는 자체 이미지를 빌드할때 실행하려는 도커에 대한 명령이 포함된다. Dockerfile 예시 FROM node WORKDIR /app COPY . /app RUN npm install EXPOSE 80 CMD ["node", "server.js"] FROM 일반적으로 FROM 명령어로 시작한다. 이를 통해 다른 베이스 이미지에 나만의 이미지를 구축할 수 있다. node라는 이미지로부터 시작한다는 뜻이다. 이미 나만의 시스템에 존재하거나..

    [Docker] 이미지와 컨테이너

    1. 이미지란? 이미지는 템플릿, 컨테이너의 청사진이다. 이미지는 실제로 코드와 코드를 실행하는데 필요한 도구를 포함한다. 그 다음 컨테이너가 실행되어 코드를 실행한다. 이미지를 기반으로 여러 컨테이너를 만들수 있다. 예를 들어 NodeJS 웹 서버 애플리케이션의 경우 한번만 정의하면 다른 시스템과 다른 서버에서 여러번 실행할 수 있다. 컨테이너는 그러한 이미지의 구체적인 실행 인스턴스이다. 즉, 이미지는 블루프린트이고 템플릿은 코드와 애플리케이션을 포함하며 컨테이너는 실행 애플리케이션이 된다. 2. 컨테이너 생성 로컬에 노드 이미지가 없다면 도커허브에서 자동으로 다운받는다. docker run node 기본적으로 컨테이너는 주변 환경과 격리되어 있으며 컨테이너 내부에서 실행중인 인터렉티브 쉘이 있다고 ..

    [Docker] 도커의 개념

    1. 도커란? 도커는 컨테이너를 생성하고 관리하기 위한 도구이다. 2. 컨테이너란? 소프트웨어 개발에서 컨테이너란 표준화된 소프트웨어 유닛이다. 이는 기본적으로 코드 패키지이며 해당 코드를 실행하는데 필요한 종속성과 도구가 포함되어있다. 예를 들어 NodeJS 애플리케이션을 구축하는 경우 NodeJS는 서버에서 js코드를 실행하는데 사용할수 있는 런타임이다. 도커로 빌드된 컨테이너에는 애플리케이션 소스 코드 뿐만 아니라 코드를 실행하는데 필요한 기타 도구가 있을수 있다. 동일한 NodeJS코드와 동일한 NodeJS도구를 사용하는 동일한 컨테이너는 항상 동일한 버전을 사용하는 동일한 js런타임에 항상 동일한 동작과 결과를 제공한다. 3. 컨테이너의 필요성 개발을 하다 보면 버전에 따라 실행이 안되는 코드도..