docker
-
Docker 컨테이너 모니터링Container 2016. 4. 15. 09:00
cAdvisor 일반적인 서버 운영 환경에서는 서비스 운영을 하면서 필요한 시스템 메트릭(CPU/메모리 사용률, 네트워크 트래픽, …등)을 모니터링하면서 특이사항이 있을때 대응해 나간다. 도커 컨테이너를 이용해서 서비스를 진행할때도 이는 필요한 기능이다. 허나 컨테이너라는 환경하에서는 기존 모니터링 도구로는 컨테이너에 대한 모니터링을 진행하는 것이 쉽지 않다. 이런 문제점을 해결하고 컨테이너를 모니터링하기 위한 도구로 많이 사용되는 것이 구글에서 만든 cAdvisor(Container Advisor)다. cAdvisor는 호스트에서 실행중인 컨테이너들의 자원 사용량과 성능에 관한 정보를 수집해서 보여준다. cAdvisor는 자신이 컨테이너를 모니터링 하는 도구이면서 컨테이너를 이용해서 실행할 수 있다. ..
-
Docker 공식 이미지 사용하기 : ElasticSearchContainer 2016. 4. 13. 09:00
오픈 소스 검색엔진인 엘라스틱서치(elasticsearch) 역시 공식 docker 이미지를 가지고 있다. 아래 명령으로 간단하게 엘라스틱서치를 실행할 수 있다. docker run --rm -ti -p 9200:9200 elasticsearch:1.7 엘라스틱서치는 REST API를 통해서 명령을 실행한다. 간단한 curl 명령을 통해서 엘라스틱서치가 실행됐는지 아래처럼 확인할 수 있다. curl 192.168.123.103:9200 { "status" : 200, "name" : "Scott Summers", "cluster_name" : "elasticsearch", "version" : { "number" : "1.7.3", "build_hash" : "05d4530971ef0ea46d0f4fa6..
-
Docker 공식 이미지 사용하기 : 젠킨스Container 2016. 4. 11. 09:00
docker를 활용하는 방안중 일반적으로 많이 소개되는 방법중 하나인 젠킨스 사용방법을 알아보자. 우선 젠킨스 공식 이미지를 이용해서 젠킨스 컨테이너를 실행해 보자. docker run -p 8080:8080 -p 50000:50000 jenkins 실행한 다음 8080 포트로 접속해 보면 젠킨스가 실행된걸 확인할 수 있다. 이상태에서 새 작업을 설정해서 젠킨스를 사용해도 된다. 그러나 이렇게 사용할 경우 젠킨스에서 사용하던 데이터가 컨테이너 내부에 저장되기 때문에 컨테이너가 중지되면 데이터가 모두 사라지게 된다. 젠킨스는 모든 데이터를 로컬디스크의 파일로 기록해서 사용하기 때문이다. 이제 젠킨스를 재시작하더라도 데이터가 남아있게 볼륨을 지정해 서 컨테이너를 시작해 보자. Jenkins라는 이름으로 디렉..
-
Docker 공식 이미지 사용하기 : RedisContainer 2016. 4. 8. 09:00
Docker를 이용한 애플리케이션중 가장 유용하게 사용할 수 있는 것이 redis다. Redis는 오픈소스 인메모리(in-memory) 데이터 저장소다. 일반적으로 데이터베이스의 캐시로 사용하거나 메세지 브로커로 사용한다. 이 중 캐시로서의 용도에는 데이터의 영속성을 고려하지 않아도 되니Docker가 딱 알맞다. redis를 실행해 보자. Redis 기본 포트인 6379를 호스트 포트에 바인딩해서 실행한다. docker run --rm -ti -p 6379:6379 redis redis가 실행된걸 확인할 수 있다. redis-cli –h [docker 호스트ip] 를 입력하면 redis 서버에 접속되는걸 알 수 있다. Docker 이미지를 실행할때 아래처럼 –v 옵션을 이용하면 redis.conf 환경설..
-
Docker 볼륨 사용하기Container 2016. 4. 6. 09:00
Docker를 이용해서 실행한 컨테이너에 저장한 데이터는 컨테이너가 중지되면 보존되지 않는다. 이런 컨테이너의 특성 때문에 각종 예제에서 docker를 이야기할때 자주 나오는 예제중에 데이터의 저장이 필요하지 않고 캐시로 사용할 수 있는 redis가 자주 언급되는 이유다. Docker를 이용해서 작업을 할때는 기본적으로 영구저장이 필요한 데이터들은 컨테이너 내부가 아니라 외부 데이터 저장소를 이용해서 저장해야 한다. 하지만 작업을 하다보면 컨테이너 내부에 저장을 하고 컨테이너가 중지되더라도 사용중이던 데이터를 보존해야할 필요가 있기 마련이다. 그 뿐만 아니라 작업했던 데이터를 컨테이너로 매번 복사해 넣지 않고 직접 수정하면서 컨테이너 내부에서 사용하고 싶을 수도 있다. 이런 경우를 위해서 Docker 볼..
-
Docker onbuild 이미지 이용하기 : JavaContainer 2016. 4. 4. 09:00
java spring 자바에서 가장 많이 사용하는 스프링 역시 docker 를 이용해서 실행할 수 있다. 스프링 기본예제로 많이 사용되는 petclinic을 docker를 이용해서 실행해 보자. 우선 petclinic 소스를 다운받는다. git clone https://github.com/spring-projects/spring-petclinic.git 여기서는 Maven용 docker onbuild 이미지를 이용한다. spring-petclinic/ 디렉토리안에 다음 Dockerfile을 추가하기만 하면 된다. FROM maven:3.3-jdk-7-onbuild CMD ["mvn", "tomcat7:run"] 이제 docker 이미지를 만들어서 실행해 보자. docker build --tag sprin..
-
Docker onbuild 이미지 이용하기 : Node.jsContainer 2016. 4. 1. 09:00
간단한 node.js 앱을 docker를 이용해서 실행해 보자. 간단한 node.js 앱을 만들어 보자. Server.js 라는 이름의 파일에 아래 내용을 추가하자. var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, "0.0.0.0"); console.log('Server running at http://0.0.0.0:1337/'); package.json 파일을 만들어서 아래 내용을 추가하자. { "name": "dockerbook-nodejs", "version":..
-
Docker onbuild 이미지 이용하기 : phpContainer 2016. 3. 30. 09:00
php 를 실행시켜 보자. 간단한 index.php를 다음과 같이 만들어 보자. 그리고 이 php를 띄울 Dockerfile을 만들어 보자. FROM php:5.6-apache COPY . /var/www/html/ 이제 이 index.php를 docker를 이용해서 실행해 보자. docker build --tag php-sample . docker run --rm -ti -p 80:80 php-sample 웹브라우저에서 접속해보면 아래처럼 php파일이 정상적으로 실행된걸 확인할 수 있다.