Docker에 들어가기에 앞서
Container, Docker
Container란?
기존 가상 머신과의 차이점
기존의 가상 머신은 호스트OS 위에 게스트OS(VMWare, VirtualBox 등으로 만든 가상 OS) 위에 각각의 애플리케이션을 배포하여 리소스를 격리 시킨다.
반면, Container를 사용하면 호스트OS 위에서 바로 리소스를 격리 시키기 때문에 메모리를 적게 차지하고, 빠르다.
Container를 운용하는 기술 Docker
Docker 라는 툴은 이러한 container를 가장 간단하고 빠르게 실행시킬 수 있는 기술.
두 가지 이상의 서버를 사용하다 보면 같은 사람이 똑같이 만들지 않는 이상 운영체제, 컴파일러, 설치한 라이브러리 (패키지) 등에서 차이가 날 수 밖에 없다.
그렇다고 매번 일일이 환경을 맞춰주기엔 자원의 낭비가 심함. (특히 시간)
따라서 애플리케이션을 환경에 구애 받지 않고 동적으로 실행할 수 있도록 지원하는 기술.
가령 A는 python2,7 환경에서 애플리케이션을 만들었고 B는 python3.7 환경에서 애플리케이션을 만들었다.
그러나 A가 B가 만든 애플리케이션을 동작 시키기 위해선 버전업을 해야 할 수 밖에 없다.
여기서 Docker를 사용하면 따로 python 3.7을 설치하지 않아도 애플리케이션의 실행이 가능하게 된다.
즉 애플리케이션을 코드로 추상화 시켜 배포하면 받는 사용자는 별도의 설치 없이 다운로드를 통해 실행이 가능함.
코드를 추상화 시킨다 라는 말은 다시 코드를 이미지화 시킨다 라고도 말할 수 있다.
FROM node:12.2.0-alpine
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json /app/package.json
RUN npm install
RUN npm install [email protected] -g
CMD ["npm", "start"]력하세요
예를 들어 위와같은 Dockerfile을 작성하였을 때,
나는 node:12.2.0 버전을 통해서 필요한 패키지를 인스톨할 것이고 npm start 라는 커맨드를 통해 실행시키겠다.
라고 정의한 파일을 만들어 이미지화 시키기만 하면 이미지를 다운 받는 사용자는 node를 설치하지 않아도 바로 애플리케이션의 서비스가 가능하다.
Author And Source
이 문제에 관하여(Docker에 들어가기에 앞서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@boolks/Docker에-들어가기에-앞서저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)