분류 전체보기
-
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파일이 정상적으로 실행된걸 확인할 수 있다.
-
Docker onbuild 이미지 이용하기 : rubyContainer 2016. 3. 28. 09:00
루비 시나트라 ruby의 인기있는 프레임워크중 하나인 sinatra를 docker를 이용해서 실행해보자. 우선 Sinatra 프레임워크를 사용하기위한 Gemfile과 Gemfile.lock파일을 아래와 같이 만들자. Gemfile source 'https://rubygems.org' gem 'sinatra' Gemfile.lock GEM remote: https://rubygems.org/ specs: rack (1.6.4) rack-protection (1.5.3) rack sinatra (1.4.6) rack (~> 1.4) rack-protection (~> 1.4) tilt (>= 1.3, < 3) tilt (2.0.1) PLATFORMS ruby DEPENDENCIES sinatra BUNDLE..
-
Docker onbuild 이미지 이용하기 : pythonContainer 2016. 3. 25. 09:00
파이썬 flask 파이썬 flask를 Docker를 이용해서 실행해 보자. Flask 를 사용하기위한 라이브러리를 명시하는 requirements.txt파일을 만들고 아래 내용을 입력하자. Flask==0.10.1 실제 파이썬 hello.py 의 내용은 아래와 같다. from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run(host='0.0.0.0') 이제 이 파이썬 프로그램을 실행할 Dockerfile을 만들어 보자. FROM python:2.7-onbuild CMD ["python", "hello.py"] 간단하게..