분류 전체보기
-
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"] 간단하게..
-
Docker 구조Container 2016. 3. 23. 09:00
Docker 자원격리 Docker는 컨테이너 내부가 호스트 운영체제와 격리되어 독립적으로 운영되게 하기 위해서 리눅스의 네임스페이스(namespace) 기술을 이용한다. 사용자가 컨테이너를 실행하면, 해당 컨테이너에서 사용할 네임스페이스들을 생성한다. Docker가 사용하는 네임스페이스에는 다음과 같은 것들이 있다. pid 네임스페이스 : 프로세스 격리를 위해 사용한다. net네임스페이스 : 네트워크 인터페이스를 관리하기 위해 사용한다. ipc네임스페이스 : IPC(InterProcess Communication, 내부 프로세스 통신)자원에 대한 접근을 관리한다. mnt네임스페이스 : 마운트 지점을 관리하기 위해 사용 uts네임스페이스 : 커널 격리와 버전 식별을 위해 사용 Docker의 각 컨테이너는 ..
-
DockerHub 사용하기Container 2016. 3. 21. 09:00
DockerHub 가입하기 Docker Hub는 Docker 이미지들을 등록하고 공유할 수 있는 서비스다. https://hub.docker.com/에서 계정, 비밀번호, 이메일 만 입력하면 간단하게 가입할 수 있다. 가입을 하지 않더라도 공개된 docker 이미지를 검색하고 다운받아서 사용하는 것에는 문제가 없다. Dockerhub가 제공하는 저장소에는 공개/비공개 2가지가 있는데 공개 저장소는 사용 개수에 제한이 없이 무제한으로 사용할 수 있다. 비공개 저장소는 기본적으로 1개는 무료로 제공해 주지만, 그 이상의 비공개 저장소를 사용하기위해서는 비용을 지불해야한다. 결제 방식은 월결제방식이며https://registry.hub.docker.com/plans/에서 가격 정보를 확인할 수 있다. Dock..