docker(4)
-
Docker 이미지 빌드시 선택적으로 Layer Caching 사용하기
DockerFile에서 이미지를 빌드하다 보면 수 많은 RUN 명령어를 사용하게 됩니다. RUN 명령어는 이미지 레이어를 만들게 되는데 이 이미지 레이어는 우리가 흔히 게임할 때 저장을 하는 세이브 포인트 역할을 합니다. 따라서 다음번에 Docker 이미지를 빌드할 때 해당 이미지를 Caching하여 사용합니다. 이는 빌드 시간을 단축시킵니다. 하지만 때때로 Cache를 사용하지 않고 명령을 수행해야 할 경우가 있습니다. 예를 들어, 원격 저장소에서 소스 코드를 받아와서 사용하는 경우 Caching된 이미지 레이어를 사용하는 경우 변경된 소스가 반영되지 않습니다. 이를 해결하기 위해 다음의 솔루션을 사용합니다. #DokerFile FROM centos/python-36-centos7 MAINTAINER ..
2018.07.23 -
Docker 명령어 RUN / CMD / Entry Point의 차이점에 대해서
RUN / CMD / Entry Point 차이점 RUN RUN 명령어를 사용하면 명령을 실행한 결과가 새로운 Layer로 저장됩니다. 그리고 이 Layer는 베이스 이미지에 추가됩니다. RUN 명령어는 주로 새로운 패키지를 설치하거나 소스를 받아서 빌드한 경우 사용됩니다. Docker는 Container를 실행할 때 Docker Image가 필요합니다. 이 Image는 이미 존재하는 다른 Docker Image나 배포된 OS를 기반으로 만들어집니다. 베이스 이미지에 Docker 명령어를 가지고 자신에게 맞는 환경을 하나 하나 얹어가는 것입니다. RUN 명령어를 사용하여 새로운 패키지가 설치하거나 새로운 명령을 실행하는 경우 베이스 이미지에 내용이 더해지는데 이것을 Layer가 더해진다고 표현합니다. L..
2018.05.31 -
Docker가 등장하게 된 배경에 대해서
과거 서버 개발은 상당히 까다로운 작업이라고 할 수 있었습니다. 대부분의 서비스가 클라이언트와 서버로 구성되어 있다는 사실에 반문을 제기할 사람은 많지 않을 것입니다. IOS나 Android 혹은 Web같은 클라이언트가 상품을 판매하는 상점이라면 서버는 판매할 상품을 만들고 배송하는 공장이라고 할 수 있습니다. 만약 공장이 갑자기 문을 닫는다면 어떻게 될까요? 아무리 이쁘게 상점을 꾸며놓는다한들 상품이 없는 상점에 고객들은 오지 않을 것입니다. 서버가 중요한 이유는 위의 예시에 나와있는 내용과 같은 맥락입니다. 데이터베이스로부터 알맞은 데이터를 효율적으로 가져다가 클라이언트에서 볼 수 있는 양식으로 가공한 뒤 보내주는 것이 서버의 역할입니다. 매우 중요합니다. 서버 개발이 되려면 다양한 프로그램, 다양한..
2018.05.30 -
서버 아키텍처의 새로운 패러다임 - 서버리스 아키텍처(Serverless Architecture)
Key Point.서버리스 아키텍처란 무엇인가?서버리스 아키텍처가 나오기까지.왜 트렌드는 서버리스 아키텍처로 가는가? 서버리스 아키텍처란 무엇인가? 서버리스 아키텍처란 직접 운영하는 서버 없이, 클라우드 상의 서비스만을 활용하여 사용자의 요청에 모두 응답할 수 있는 서버 아키텍처를 말합니다. 위의 그림에서 알 수 있듯이 클라우드 상의 서비스들은 각자 다른 핵심기능들을 수행하는 마이크로서비스(MicroService)들입니다. 마치 레고 조각들을 조립해서 하나의 작품을 만드는 과정과 흡사합니다. 크기별로 있는 다양한 레고들을 목적에 맞게(예를 들어 자동차 만들기, 성 만들기) 배합하면 금방 만들 수 있습니다. 서버리스 아키텍처에서도 마찬가지입니다. 여러분이 원하는 서비스를 정의한 뒤 클라우드상에서 제공되는 ..
2018.01.05