Container
-
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..
-
Docker ToolboxContainer 2016. 3. 18. 09:00
도커 툴박스(Docker Toolbox)는 윈도우와 맥 OS X에서 도커를 사용하는데 있어 필요한 모든 패키지들을 모아놓은 도구다. 도커 툴박스에는 도커 클라이언트, Compose, Machine, Kitematic, 버추얼박스등이 모두 포함되어 있다. 이전에는 boot2docker가 이 역할을 해줬었지만 도커 툴박스가 나오면서 공식적으로 boot2docker가 아니라 툴박스를 사용하기를 권장하고 있다. 툴박스는 https://www.docker.com/docker-toolbox 웹페이지에서 다운받을 수 있다. 각 OS별로 설치파일을 다운받아서 실행한 다음 필요한 옵션들을 선택해서 설치하면 간단하게 설치할 수 있다. 설치가 끝나면 Docker Quickstart Terminal 아이콘이 생기는데 이걸 실..
-
Docker SwarmContainer 2016. 3. 16. 09:00
도커 스웜은(Docker Swarm) 여러개의 호스트에 있는 Docker 데몬들을 관리할 수 있는 Docker 클러스터링 도구다. 도커 스웜은 도커사에서 제공하는 도구인 만큼 표준 도커 API를 제공하기 때문에 기존에 도커 데몬을 사용하던 외부도구들이 그대로 스웜을 사용해서 여러개 호스트에서 도커를 사용할 수 있다. 다음 과 같은 것들은 바로 스웜을 이용할 수 있다. Dokku Docker Compose Krane Jenkins 스웜에서 제공하는 기능은 다음과 같다. 클러스터 내에서의 CPU, 메모리등의 자원 사용량 제한 지정한 호스트에만 컨테이너를 할당하거나 할당하지 않게 하기 특정 목적의 컨테이너를 하나의 호스트에 몰리지 않게 여러 호스트에 분산되어 배치하거나 하나의 호스트에만 몰아서 배치하기 컨테이..