Programming 144

Docker - Run a simple application

Run a simple application “Hello world in a container“에서 우리는 docker run 커맨트를 이용해 첫번째 컨테이너를 띄웠다. 우리는 foreground에서 대화형 컨테이너를 실행하였고, 또한 백그라운드에서 분리된 컨테이너를 실행하였다. 이러한 과정중에 몇가지 Docker 커맨드를 배울 수 있었다. docker ps - 컨테이너들의 리스트를 출력docker logs - 컨테이너의 표준 출력을 보여준다.docker stop - 실행중인 컨테이너를 중지한다. Learn about the Docker client 인지하지 못했지만 우리는 이미 도커 클라이언트를 이용하였다. 클라이언트는 단순한 커맨드라인이다. 클라리언트는 각 명령 과 각 명령의 일련의 플래그 및 인자를..

Programming/Docker 2016.03.11

Docker Engine - Hello world in a container

Hello world in a container 그래서 도커의 모든것은 무엇인가? 도커는 컨테이너내에서 어플리케이션을 실행하고 세상을 만들 수 있게 한다. 컨테이너내의 어플리케이션을 실행하는 명령은 다음과 같다. docker run Note: 도커 시스템 설정에 따라 도커 명령에 sudo을 항당 붙어야 할 수 있다. 이러한 것을 피하기 위해 docker라는 유닉스 유저그룹을 생성하고 거기에 유저를 추가하자. Run a Hello world 그냥 따라해보자. $ docker run ubuntu /bin/echo 'Hello world'Hello world 첫번째 컨테이너 구동에 성공했다. 어떤일들이 일어났는지 살펴보자. 먼저 도커 바이너리를 명시하고 실행하고하는 명령을 명시한다. docker run의 조합..

Programming/Docker 2016.02.18

MockServer - Getting Started

What is MockServer 목서버는 HTTP나 HTTPS를 경유하는 어떠한 시스템을 모킹하기위해서 사용할 수 있다. 목서버는 다음과 같은 일을 할 수 있다.: 어떠한 요청에 예상되는 목 응답을 리턴할 수 있다.예상되는 요청이 왔을때 요청을 포워딩할 수 있다. (i.e. a dynamic port forwarding proxy)요청이 예상한바와 맞을때 콜백을 호출할 수 있다. 요청은 다이내믹하게 생성할수도 있다.요청이 제대로 전송되었는지를 검증할 수 있다. (i.e. as a test assertion) Why use MockServer 목서버는 어떠한 서버나 서비스에 대한 목을 제공한다. 제공하는 프로토콜은 HTTP, HTTPS, REST, RPC이다. 다음과 같은 시나리오에 유용하게 이용할 수 ..

Docker Engine - Architecture

Understand the architecture 도커란 무엇인가? 도커는 개발하고 적재하고 어플리케이션을 실행하기 위한 오픈 플랫폼이다. 도커는 어플리케이션을 더빨리 딜리버리하기 위해서 설계되었다. 도커와 함께라면 인프라스트럭처와 어플리케이션을 분리 할 수 있으며, 인프라스트럭처를 어플리케이션처럼 관리할 수 있다. 도커는 코드를 더 빨리 적재하고, 더 빨리 테스트하고, 더 빨리 디플로이하고 코드를 작성하고 코드를 실행하는 사이클을 더 짧게 만들어준다. 도커는 이러한 일들을 결합된 커널 컨테이너 기술로 제공한다. 이러한 워크플로우와 툴들은 당신의 어플리케이션을 디플로이하고 관리하는 것을 도와준다. 핵심적으로 도커는 컨테이너에 안전하고 독립적으로 거의 모든 어플리케이션을 실행하는 방법을 제공한다. 독립과 ..

Programming/Docker 2016.02.17

Docker Engine - Quickstart Containers

Quickstart Docker Engine 이 퀵스타트는 도커 엔진이 동작하도록 설치가 되어있다고 가정한다. 엔진이 설치되었는지를 확인하기 위해 다음과 같은 명령을 수행해보자. $ docker infoContainers: 12Images: 14Storage Driver: aufs Root Dir: /mnt/sda1/var/lib/docker/aufs Backing Filesystem: extfs Dirs: 38 Dirperm1 Supported: trueExecution Driver: native-0.2Logging Driver: json-fileKernel Version: 4.0.9-boot2dockerOperating System: Boot2Docker 1.8.2 (TCL 6.4); master :..

Programming/Docker 2016.02.17

Docker - Tag, push, and pull your image

이번 섹션에서는 우리가 생성한 리파지토리에 docker-whale 이미지를 태그하고 푸쉬 해보겠다. 이것이 끝나면 우리는 리파지토리로 부터 새로운 이미지를 풀해보겠다. Step 1: Tag and push the image 아직 터미널을 열지 않았다면 터미널을 열어라. 터미널이 오픈되면 당신이 현재 가지고 있는 도커 이미지를 확인해보자. docker images라고 명령을 수행해보자. $ docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEhello-world latest af340544ed62 5 months ago 960 Bdocker/whalesay latest fb434121fc77 8 months ago 247 MB docker-whalesay ..

Programming/Docker 2016.02.02

Docker - Create a Docker Hub account & repository

당신이 어떤 좋은 것을 만들었다면 그것을 공유할 수 있다. 이번 섹션에서는 우리는 공유를 해볼것이다. Docker Hub account가 필요할 것이다. 그러면 당신의 이미지를 푸쉬해서 다른 사람들이 도커에서 실행할 때 사용할 수 있게 할 수 있다. Step 1: 계정 만들기 브라우저에서 도커허브 singup 페이지로 이동하자. 다음과 같은 페이지가 출력될 것이다. singup 페이지에 형식을 채우자. 도커 허브는 무료이다. 도커는 이름, 패스워드 이메일 주소가 필요하다. Signup을 누르자. 도커허브 웰컴페이지가 출력될 것이다. Step 2: 이메일 검증 및 리파지토리 추가하기 어떤것을 허브에 공유하기 전에 이메일이 맞는지 확인할 필요가 있다. 이메일 받은편지함에 가보자. 이메일의 제목이 다음과 같은..

Programming/Docker 2016.02.02

Elasticsearch - Modeling Your Data:Parent-Child Relationship

부모-자식 관계는 본질적으로 내포된 모델과 비슷하다. 그러나 차이가 있다면 내포된 오브젝트는 하나의 도큐먼트에 저장되는 반면, 부모-자식에서는 부모와 자식이 완전하게 다른 도큐먼트로 저장된다는 것이다. 부모-자식 기능은 하나의 도큐먼트 타입이 다른 것과 연관되게 해준다. 내포된 오브젝트와 비교한 이점은 다음과 같다. 자식 도큐먼트의 리인덱싱 없이 부모 도큐먼트를 업데이트 할 수 있다.부모와 다른 자식의 영향 없이 자식 도큐먼트를 추가 변경 삭제할 수 있다. 이것은 특히 자식 도큐먼트들이 다수이고 자주 변경되고 추가될때 유용하다.자식 도큐먼트는 검색의 결과로 리턴될 수 있다.엘라스틱서치는 부모와 연관된 자식을 매핑을 유지하고 있어서 쿼리타임에 빠르게 조인할 수 있다. 그러나 이 경우 부모 자식 관계의 한계..

Elasticsearch - Modeling Your Data:Nested Objects

엘라스틱서치에서 하나의 도큐먼트에 대한 생성, 삭제, 업데이트는 atomic하다. 이 의미는 같은 도큐먼트내에 저장된 엔티티에도 동일하다. 예를 들어 우리는 블로그포스트와 그의 코멘트를 하나의 도큐먼트로 저장할 수 있다. PUT /my_index/blogpost/1{ "title": "Nest eggs", "body": "Making your money work...", "tags": [ "cash", "shares" ], "comments": [ { "name": "John Smith", "comment": "Great article", "age": 28, "stars": 4, "date": "2014-09-01" }, { "name": "Alice White", "comment": "More like..

Elasticsearch - Modeling your data:Handling Relationships

엘라스틱서치는 다른 종류의 종이다. 특히 당신이 SQL의 세상으로부터 왔다면. 엘라스틱서치는 많은 이점이 있다. : 성능, 확장성, NRT 서치, 대용량 데이터 분석 등. 또한 쉽게 이러한 일들을 수행할 수 있다. 그러나 마법같이 모든 것을 해결해줄수는 없다. 이에 우리는 어떻게 동작하고 당신의 요구사항을 어떻게 동작하게 만들수 있는지를 이해해야 한다. 엔티티간의 관계를 처리하는 것은 관계를 지정할 수 있는 스토어처럼 명백하진 않다. 데이터 정규화를 엘라스틱서치에 적용할 수 없다. Handling Relationships, Nested Objects 그리고 Parent-Child Relationship을 통해 우리는 가능한 접근법들의 특성과 제약에 대해서 알아볼 것이다. Handling Relations..