SlideShare ist ein Scribd-Unternehmen logo
1 von 169
Downloaden Sie, um offline zu lesen
docker
lightweight linux container
at Deview 2013

judekim ( baas.io developer - KT )
1
13년 10월 15일 화요일
speaker
김영찬 ( @modestjude )
http://judekim.tistory.com
* PHP/Java developer
* baas.io in KT
* KPNS ( Push Notification )
Previously
* KTH

2
13년 10월 15일 화요일
Index
•
•
•
•
•
•
•

about docker
why docker?
inside docker
demo
docker use cases
limitations
epilogue
3

13년 10월 15일 화요일
about docker
• why docker?
• inside docker
• demo
• docker use cases
• limitations
• epilogue
13년 10월 15일 화요일
docker [dɒkəә]
부두노동자

13년 10월 15일 화요일
docker [dɒkəә]
부두노동자

13년 10월 15일 화요일
• docker is an open-source engine that

automates the deployment of any
application as a lightweight, portable, selfsufficient container that will run virtually
anywhere.

6
13년 10월 15일 화요일
• docker는 거의 어디에서나 실행되는 경량이

면서 portable하고, 자급자족인 컨테이너 응용
프로그램의 배포를 자동화하는 오픈소스 엔진
입니다.

7
13년 10월 15일 화요일
• docker는 거의 어디에서나 실행되는 경량이

면서 portable하고, 자급자족인 컨테이너 응용
프로그램의 배포를 자동화하는 오픈소스 엔진
입니다.

??
at
wh
7

13년 10월 15일 화요일
그냥 한번 해보자!

8
13년 10월 15일 화요일
• git clone https://github.com/dotcloud/
docker.git

• vagrant up (http://www.vagrantup.com)
- Ubuntu64bit package box download
- boot using virtualbox
- docker install ( lxc-docker )

• vagrant ssh
9
13년 10월 15일 화요일
run CentOS6.4 in Ubuntu
http://youtu.be/xL9e8YaugSY

10
13년 10월 15일 화요일
hello world
http://youtu.be/w4jfLy633xM

11
13년 10월 15일 화요일
docker
• dotCloud 내부 프로젝트로 시작 (2013.01)
• python -> go
• docker는 현재 다음 기술들로 구현됨
LinuX Containers
Control Groups & Namespaces
AUFS

12
13년 10월 15일 화요일
• like git
vagrant@precise64:~$ sudo docker pull centos:6.4
Pulling repository centos
539c0211cd76: Downloading 61.8 MB/98.56 MB (63%)

~/workspace/usergrid-stack-origin:~$ git pull origin master
remote: Counting objects: 291, done.
remote: Compressing objects: 100% (121/121), done.
remote: Total 210 (delta 79), reused 170 (delta 42)
Receiving objects: 100% (210/210), 48.34 KiB, done.
Resolving deltas: 100% (79/79), completed with 38 local
objects.
From github.com:apigee/usergrid-stack

13
13년 10월 15일 화요일
• like git

sudo docker pull centos:6.4

vagrant@precise64:~$
Pulling repository centos
539c0211cd76: Downloading

61.8 MB/98.56 MB (63%)

~/workspace/usergrid-stack-origin:~$ git pull origin master
remote: Counting objects: 291, done.
remote: Compressing objects: 100% (121/121), done.
remote: Total 210 (delta 79), reused 170 (delta 42)
Receiving objects: 100% (210/210), 48.34 KiB, done.
Resolving deltas: 100% (79/79), completed with 38 local
objects.
From github.com:apigee/usergrid-stack

13
13년 10월 15일 화요일
•

sudo docker pull centos:6.4

like git

git pull origin master

vagrant@precise64:~$
Pulling repository centos
539c0211cd76: Downloading

61.8 MB/98.56 MB (63%)

~/workspace/usergrid-stack-origin:~$
remote: Counting objects: 291, done.
remote: Compressing objects: 100% (121/121), done.
remote: Total 210 (delta 79), reused 170 (delta 42)
Receiving objects: 100% (210/210), 48.34 KiB, done.
Resolving deltas: 100% (79/79), completed with 38 local
objects.
From github.com:apigee/usergrid-stack

13
13년 10월 15일 화요일
• about docker

why docker

• inside docker
• demo
• docker use cases
• limitations
• epilogue
13년 10월 15일 화요일
Evolution of IT

13년 10월 15일 화요일
The challenge

13년 10월 15일 화요일
NxM Matrix

13년 10월 15일 화요일
NxM Matrix

ep
D

13년 10월 15일 화요일

de
en

yh
nc

l!!
el
비슷한 사례가 없었을까?

13년 10월 15일 화요일
1960년 이전의 화물운송

13년 10월 15일 화요일
마찬가지로 NxM Matrix

13년 10월 15일 화요일
마찬가지로 NxM Matrix

oh
ls
A

13년 10월 15일 화요일

l!!
el
그럼 어떻게 해결했을까?

13년 10월 15일 화요일
화물 운송의 해결책은?

13년 10월 15일 화요일
NxM 문제가 해결되었다!

13년 10월 15일 화요일
container로 만들어진 에코시스템

13년 10월 15일 화요일
그렇다면 우리의 해결책은?

13년 10월 15일 화요일
리눅스에도 container가
있었다..

13년 10월 15일 화요일
리눅스에도 container가
있었다..
단언컨대 container는..

13년 10월 15일 화요일
리눅스에도 container가
있었다..

13년 10월 15일 화요일
docker는 코드를 위한
container 운송시스템이다

13년 10월 15일 화요일
docker는 상황을 더 단순하게 만듭니다.

13년 10월 15일 화요일
docker는 상황을 더 단순하게 만듭니다.

13년 10월 15일 화요일
개발자의 관심
• 나의 container 내(in)에 있는 것들에 대해서...
• my code
• my libraries
• my package manager
• my app
• my data
13년 10월 15일 화요일
build once and run
anywhere
( for developers )

13년 10월 15일 화요일
시스템 운영자의 관심
• container 밖의 것들에 대해서...
• logging
• remote access
• network configuration
• monitoring

13년 10월 15일 화요일
configure once run
anything
( by devops )

13년 10월 15일 화요일
Linux containers
•
•

13년 10월 15일 화요일

run everywhere

•
•

커널 버전과 관계없이
Host 배포판과 관계없이

run anything

•
•

Host에서 동작한다면 container에서도 동작한다.
즉, 리눅스 커널에서 동작한다면 가능하다.
docker는 마찬가지로
(linux)contianer를 사용하여 NxM 문제를 해결했습니다.

13년 10월 15일 화요일
• docker is an open-source engine that

automates the deployment of any
application as a lightweight, portable, selfsufficient
that will run virtually
anywhere.

13년 10월 15일 화요일
• docker is an open-source engine that

automates the deployment of any
application as a lightweight, portable, selfsufficient container that will run virtually
anywhere.

13년 10월 15일 화요일
• about docker
• why docker

inside docker

• demo
• docker use cases
• limitations
• epilogue
13년 10월 15일 화요일
Linux containers란 무엇인가?

• own process space
• own network interface
• can run stuff as root
• can have its own /sbin/init
(different from the host)

13년 10월 15일 화요일
Linux containers란 무엇인가?
그것은 경량화된 VM이다.

• own process space
• own network interface
• can run stuff as root
• can have its own /sbin/init
(different from the host)

13년 10월 15일 화요일
Linux containers란 무엇인가?
그것은 경량화된 VM이다.

• own process space
• own network interface
• can run stuff as root
• can have its own /sbin/init
(different from the host)

[Machine Container]

13년 10월 15일 화요일
Linux containers란 무엇인가?

• can also not have its own /sbin/init
• container = isolated process(es)
• share kernel with host
• no device emulation
(neither HVM nor PV)

13년 10월 15일 화요일
Linux containers란 무엇인가?
스팀팩 맞은 chroot

• can also not have its own /sbin/init
• container = isolated process(es)
• share kernel with host
• no device emulation
(neither HVM nor PV)

13년 10월 15일 화요일
Linux containers란 무엇인가?
스팀팩 맞은 chroot

• can also not have its own /sbin/init
• container = isolated process(es)
• share kernel with host
• no device emulation
(neither HVM nor PV)

[Application Container]

13년 10월 15일 화요일
containers vs VMs ( Hypervisor Type2 )

• VM runs on(above) the host operating

system as a full fledged OS and uses
isolated process spaces.
( virtualbox,VMware, Parallels Desktop ... )

• Docker runs with host operating system
as its share the host process spaces.

13년 10월 15일 화요일
containers이어야 하는 이유
• speed : boots in seconds
• footprint : 100-1,000 containers on one machine.

13년 10월 15일 화요일
containers vs VMs

13년 10월 15일 화요일
docker 경량화의 비법
델타 Δ

13년 10월 15일 화요일
docker container 기본 flow
push

build

13년 10월 15일 화요일

search

pull
run
application 의 업데이트도 간단

13년 10월 15일 화요일
그럼 어떻게 docker가
이렇게 동작할까요?

13년 10월 15일 화요일
LinuX Container ( LXC )
•
•
•
•
•

또 다른 리눅스 시스템에서 리눅스 시스템을 구동
container는 리눅스 박스내의 process 그룹
container 안에서는 VM처럼 보임
container 밖에서는 process 처럼 보임
스팀팩 맞은 chroot

46
13년 10월 15일 화요일
outside (host) > ps -ax

47
13년 10월 15일 화요일
outside (host) > ps -ax

47
13년 10월 15일 화요일
outside (host) > ps -ax

47
13년 10월 15일 화요일
outside (host) > ps -ax

47
13년 10월 15일 화요일
outside (host) > ps -ax

47
13년 10월 15일 화요일
Isolation with namespaces
• pid ( processes )
• net ( network interfaces, routing ... )
• ipc ( System V IPC )
• mnt ( mount points, filesystems )
• uts ( hostname )
• user ( UIDs )
48
13년 10월 15일 화요일
Isolation with cgroups
• memory
• cpu
• block I/O : not perfect
• devices

49
13년 10월 15일 화요일
AUFS ( Advanced multi layered
Unification FileSystem )
•
•

layered 파일 시스템

•

rootfs(루트파일시스템)에 있는 내용을 수정할 수 있
으나, 수정한 내용은 rw 디렉토리로 이동된다.

최상위 layer만 읽기 쓰기가 가능한 layer로 설정되어
있음 ( container )

50
13년 10월 15일 화요일
more union file system
in docker

13년 10월 15일 화요일
File system
- bootfs
- rootfs

52
13년 10월 15일 화요일
bootfs
• bootloader
• kernel
• 유저들은 여기에 어떤 수정도 할 수 없다.

53
13년 10월 15일 화요일
rootfs
• 일반적인 디렉토리를 포함한다.
( /dev, /bin, /etc )

• 환경설정 및 실행파일 그리고 라이브러리파일
들이 rootfs에 있다.
( like bash, ls ... )

54
13년 10월 15일 화요일
Layer
- 전통적인 linux 부팅 순서
. rootfs를 읽기 전용으로 마운트
. rootfs 무결성 검사
. rootfs를 읽기쓰기 모드로 변경
- docker 는 오직 rootfs를 읽기 전용으
로 마운트 한다. 대신 읽기쓰기가 가능한
레이어를 추가한다. ( it's
)

55
13년 10월 15일 화요일
Layer
- 전통적인 linux 부팅 순서
. rootfs를 읽기 전용으로 마운트
. rootfs 무결성 검사
. rootfs를 읽기쓰기 모드로 변경
- docker 는 오직 rootfs를 읽기 전용으
로 마운트 한다. 대신 읽기쓰기가 가능한
레이어를 추가한다. ( it's container )

55
13년 10월 15일 화요일
Image
- 읽기 전용 레이어 image로 부름
- image는 상태를 가질 수 없음
- 부모 image가 없는 image를 base
image라고 함 ( e.g. Debian )

56
13년 10월 15일 화요일
Container
- 읽기쓰기가 가능한 레이어
- 최상위 레이어
- 상태를 가질 수 있음
- container를 docker의 commit 명령어
를 통해 이미지로 만들수도 있으며 만든
이미지를 다시 parent image로 사용할 수
있음. 즉 재사용할 수 있음.

57
13년 10월 15일 화요일
Look down

58
13년 10월 15일 화요일
Union file system
•

일반적으로 리눅스에서는 디렉토리 하나에 하나의 파일시스
템만 마운트하는게 대부분.

•

만일 동일한 디렉토리에 둘 이상의 파일 시스템을 마운트하
면 항상 마지막에 마운트한 파일 시스템 내용만 보여 이전에
마운트한 파일 시스템 내용은 접근이 불가능.

•

병합(union)마운트란 하나의 디렉토리에 여러 파일시스템을
마운트 하여 여러 파일 시스템 내용이 합쳐지는 것을 의미.

•

나중 마운트한 파일이 우선시 됨. 만일 writable mount가 되
었다면 마운트 파일을 지웠을때, 그 정보도 유지됨.

59
13년 10월 15일 화요일
Demo union file system
in docker
http://youtu.be/uHLs5ljV20U

60
13년 10월 15일 화요일
http://youtu.be/uHLs5ljV20U

60
13년 10월 15일 화요일
좀전에 ubuntu image에서
/tmp/test2파일을 추가한것은
container의 rootfs에서는
확인이 되나,
rw 에서는 확인이 되지 않습니다.

61
13년 10월 15일 화요일
rootfs는 image를 모두 가지고 있고,
그 위에 변화하는 값까지 가지고 있으나,
rw는 image대비 변화값(Δ델타)만을
가지고 있기 때문입니다.

62
13년 10월 15일 화요일
이미 image에 존재하는
/tmp/test2이니 굳이 rw에서는
변화량으로 확인되지 않는 것이죠.

63
13년 10월 15일 화요일
만일 container의 rootfs디렉
토리에서 파일을 생성한다면
rw디렉토리에 기록될까요?

64
13년 10월 15일 화요일
docker를 통하지 않고,
직접 데이터를 수정한 느낌인데
과연 될까요?

65
13년 10월 15일 화요일
네 기록됩니다.
docker가 하는것이 아닌
union file filesystem
고유의 기능에 의한 것이니까요.

66
13년 10월 15일 화요일
docker는 단지
파일시스템의 마운트
룰셋만 정의 및 관리하고,
직접적인 파일 핸들링은 AUFS가 합니다.

67
13년 10월 15일 화요일
Efficiency

68
13년 10월 15일 화요일
Efficiency
almost no overhead

68
13년 10월 15일 화요일
Efficiency
almost no overhead
뻥치시네~

68
13년 10월 15일 화요일
•
•

프로세스들은 고립되어 있지만, host위에서 직접 실행된다.
CPU performance

•

memory performance

•

native performance ( 거의 차이 없음 )

a few % shaved off for (optional) accounting

network performance

-

작은(small)의 오버헤드 발생. ( docker project 팀은 향후
에 충분히 1:1에 가까운 수준으로 최적화 가능하다라고 함 )

69
13년 10월 15일 화요일
docker benchmark
items

method

host

CPU

sysbench

1

disk

sysbench
seq
sysbench
rnd
dd

1 (r)
1 (w)
1 (r)
1 (w)
1

network

iperf

1

memory

13년 10월 15일 화요일

docker
docker benchmark
items

method

host

docker

CPU

sysbench

1

0.9931

disk

sysbench
seq
sysbench
rnd
dd

1 (r)
1 (w)
1 (r)
1 (w)
1

0.9999
0.9759
1.0056
0.9807
0.9716

network

iperf

1

memory

13년 10월 15일 화요일
docker benchmark
items

method

host

docker

CPU

sysbench

1

0.9931

disk

sysbench
seq
sysbench
rnd
dd

1 (r)
1 (w)
1 (r)
1 (w)
1

0.9999
0.9759
1.0056
0.9807
0.9716

network

iperf

1

0.7889

memory

13년 10월 15일 화요일
• about docker
• why docker
• inside docker

demo

• docker use cases
• limitations
• epilogue
13년 10월 15일 화요일
hipache +
nginx with php5
https://github.com/dotcloud/hipache

72
13년 10월 15일 화요일
시나리오

73
13년 10월 15일 화요일
1. php + nginx로 구현된
web application 서버들을
hipache를 통해 로드밸런싱 구현
2. web application 수정 및 deploy

74
13년 10월 15일 화요일
80
80
hipache

8001

8002

80
web 1

80
web 2

75
13년 10월 15일 화요일
80
80
hipache

8001

8002

8003

80
web 1

80
web 2

80
web 3
v.0.3

copy & modify

75
13년 10월 15일 화요일
80
80
hipache

8001

8002

8003

80
web 1

80
web 2

80
web 3
v.0.3

copy & modify

75
13년 10월 15일 화요일
로드밸런싱 => hipache 사용
• git clone https://github.com/dotcloud/
hipache.git

• sudo docker build -t dotcloud/hipache .

76
13년 10월 15일 화요일
nginx + php5
• git clone https://github.com/darron/dockernginx-php5.git

• 간단히 Dockerfile을 수정한다.
•

RUN echo "<?php echo sprintf( "Hello world2 (%s)", $_SERVER['SERVER_ADDR']); ?>" > /var/
www/index.php

• sudo docker build -t judekim/nginx-php5 .
77
13년 10월 15일 화요일
demo
http://youtu.be/xC-2b7iGBno

78
13년 10월 15일 화요일
• about docker
• why docker
• inside docker
• demo

docker use cases

• limitations
• epilogue
13년 10월 15일 화요일
•
•
•
•
•
•
•
•
•

testing
build your own PaaS
web based environment for instruction
easy application deployment
create secure sandboxes
create your own SaaS
automated application deployment
continuous integration and deployment : travis
lightweight desktop virtualization

80
13년 10월 15일 화요일
Testing

81
13년 10월 15일 화요일
유닛 테스팅
• 자신의 환경과 테스트를 분리하기 위해 컨테
이너를 사용

• 테스트후에 data등을 정리 하기 위해 더이상
신경쓰지 않아도 됨

• 다중 머신에 걸친 테스트도 문제 없음

82
13년 10월 15일 화요일
시스템 테스팅
• 쉽게 테스트와 다른 시스템 환경설정을 만들
수 있음

• 테스트서버가 끊기거나 재구축에 대해서 더이
상 걱정할 필요 없음

• 사용예 : Test Fabric script

(http://agiliq.com/blog/2013/06/self-testing-fabfile-using-docker/)

83
13년 10월 15일 화요일
Continuous integration
•
•
•

개별 소스 커밋에 대해서 유닛 테스트를 할 수 있음
StriderCD.com - Open source CI server

•

deploy전에 docker 컨테이너를 통해 CI test를
수행

TravisCI docker를 활용하고 있음

84
13년 10월 15일 화요일
Continuous integration
•
•
•

개별 소스 커밋에 대해서 유닛 테스트를 할 수 있음
StriderCD.com - Open source CI server

•

deploy전에 docker 컨테이너를 통해 CI test를
수행

TravisCI docker를 활용하고 있음

84
13년 10월 15일 화요일
Deployment

85
13년 10월 15일 화요일
86
13년 10월 15일 화요일
개발

86
13년 10월 15일 화요일
개발

테스트

86
13년 10월 15일 화요일
개발

git
repository

테스트

86
13년 10월 15일 화요일
개발

git
repository

테스트

86
13년 10월 15일 화요일

CI
jenkins
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins

stage
server
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins

stage
server
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins

stage
server
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins

stage
server
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins

stage
server
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins

stage
server
개발

git
repository

테스트

develop
server

86
13년 10월 15일 화요일

CI
jenkins

stage
server

production
server
87
13년 10월 15일 화요일
개발

87
13년 10월 15일 화요일
개발

git
repository

테스트

87
13년 10월 15일 화요일
개발

git
repository

테스트

87
13년 10월 15일 화요일

hook

git clone
and
docker build
개발

git
repository

테스트

docker
private
registry

87
13년 10월 15일 화요일

hook

test
pass

git clone
and
docker build

CI
( test
container )
개발

git
repository

테스트

docker
private
registry

docker pull
develop
server

87
13년 10월 15일 화요일

hook

test
pass

git clone
and
docker build

CI
( test
container )
개발

git
repository

테스트

docker
private
registry

docker pull
develop
server

stage
server

87
13년 10월 15일 화요일

hook

test
pass

git clone
and
docker build

CI
( test
container )
개발

git
repository

테스트

docker
private
registry

hook

test
pass

git clone
and
docker build

CI
( test
container )

docker pull
develop
server

stage
server

87
13년 10월 15일 화요일

production
server
개발

git
repository

테스트

docker
private
registry

hook

test
pass

git clone
and
docker build

CI
( test
container )

docker pull
develop
server

stage
server

87
13년 10월 15일 화요일

production
server
환경설정을 docker container에 포함하기
때문에 어디서나 동일하게 동작합니다.

88
13년 10월 15일 화요일
old way

codes

89
13년 10월 15일 화요일
codes

89
13년 10월 15일 화요일
new way with docker

codes

+

environment

It’s container of docker

90
13년 10월 15일 화요일
vagrant = docker

91
13년 10월 15일 화요일
vagrant = docker
Vagrantfile = Dockerfile

91
13년 10월 15일 화요일
vagrant = docker
Vagrantfile = Dockerfile
vm vs container

91
13년 10월 15일 화요일
docker at baas.io

13년 10월 15일 화요일
pasta
( for custom code )

93
13년 10월 15일 화요일
customized node.js

94
13년 10월 15일 화요일
needs
- process isolation
- memory, cpu resource limitation

95
13년 10월 15일 화요일
docker on cloud
( ucloud )

96
13년 10월 15일 화요일
• about docker
• why docker
• inside docker
• demo
• docker use cases

limitations

• epilogue
13년 10월 15일 화요일
kernel dependency
in 0.6 architecture
( e.g. LXC )
98
13년 10월 15일 화요일
= only ubuntu 12.04
higher (now)

99
13년 10월 15일 화요일
new architecture is
coming...
( pluggable API )
100
13년 10월 15일 화요일
그럼에도 불구하고

101
13년 10월 15일 화요일
그럼에도 불구하고
충분히 쓸만하다.

101
13년 10월 15일 화요일
• about docker
• why docker
• inside docker
• demo
• docker use cases
• limitations

epilogue

13년 10월 15일 화요일
docker 로드맵
• 2013-08-08 - 새로운 아키텍쳐 계획 발표
• 2013-08 mid - 0.6 릴리즈
• 2013-10 - 0.8 릴리즈 ( 새로운 아키텍쳐 )
• 2013-10 ~ 11 0.8 certified on RHEL,

CentOS
(http://blog.docker.io/2013/09/red-hat-anddocker-collaborate/)

13년 10월 15일 화요일
• docker is an open-source engine that

automates the deployment of any
application as a lightweight, portable, selfsufficient container that will run virtually
anywhere*.

13년 10월 15일 화요일
docker 새로운 아키텍쳐

finally anywhere!!

13년 10월 15일 화요일
docker v1.0
•
•

•

13년 10월 15일 화요일

Stabilizing

•
•

Shrink and stabilize Core
Provide stable, pluggable API

Expanding runtime environments

•
•
•
•
•

OpenStack : announced
Docker as various flavors of VM ( AMI, vdf, etc )
Increase compatible kernel set
Increase compatible Union FS set
IaaS compatibility

Dev/devops tools integrations

•
•

Chef, Puppet,Vagrant, Github, Travis, Buildbot
Various flavors of PaaS & IDE
similar to docker
( lem-kut-fee )

https://github.com/google/lmctfy
since 2013.10.02

13년 10월 15일 화요일
감사합니다.
- judekim i.judekim@gmail.com

13년 10월 15일 화요일
references
•
•
•
•
•
•
•
13년 10월 15일 화요일

http://docker.io

http://aufs.sourceforge.net/

http://blog.docker.io
http://blog.dotcloud.com/
http://lxc.sourceforge.net/
http://en.wikipedia.org/wiki/Operating_systemlevel_virtualization
https://github.com/erikh/docker-bench
why docker
• docker의 경우 linux container의 주요 기능

에 몇몇 편리함 및 공유를 덧붙였을뿐이지 않
은가?
직접 linux container를 사용해서 구현해도 되
지 않을까?

13년 10월 15일 화요일
containers before docker

13년 10월 15일 화요일
containers after docker

13년 10월 15일 화요일
VM vs containers
• 서로 상호 보완 관계임
• VM은 하드웨어 리소스의 chunk를 할당하는
데 가장 유용합니다.

• container는 소프트웨어 전달 단위로서 매우

가볍고 완벽하게 프로세스 수준에서 작동합니
다.

13년 10월 15일 화요일

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTLOGISPOT
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!pyrasis
 
초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문Daniel Seo
 
Introduce Docker
Introduce DockerIntroduce Docker
Introduce DockerYongbok Kim
 
Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기raccoony
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTHosang Jeon
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXpressEngine
 
[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08Nomad Connection, Inc.
 
Open stack의 vm개념을 통한 docker의 활용
Open stack의 vm개념을 통한 docker의 활용Open stack의 vm개념을 통한 docker의 활용
Open stack의 vm개념을 통한 docker의 활용Tae Young Lee
 
도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기JunSeok Seo
 
Truly understanding container
Truly understanding containerTruly understanding container
Truly understanding container어형 이
 
Enterprise Docker
Enterprise DockerEnterprise Docker
Enterprise DockerLee Ji Eun
 
왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법GeunCheolYeom
 
Docker introduction
Docker introductionDocker introduction
Docker introductionDaegwon Kim
 
RancherOS Introduction
RancherOS IntroductionRancherOS Introduction
RancherOS IntroductionRemotty
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google KubernetesYongbok Kim
 
Docker 사내교육 자료
Docker 사내교육 자료Docker 사내교육 자료
Docker 사내교육 자료Juneyoung Oh
 
Docker at Deview 2013
Docker at Deview 2013Docker at Deview 2013
Docker at Deview 2013Jude Kim
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기iFunFactory Inc.
 

Was ist angesagt? (20)

Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
 
초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문
 
Introduce Docker
Introduce DockerIntroduce Docker
Introduce Docker
 
Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08
 
Open stack의 vm개념을 통한 docker의 활용
Open stack의 vm개념을 통한 docker의 활용Open stack의 vm개념을 통한 docker의 활용
Open stack의 vm개념을 통한 docker의 활용
 
도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기
 
Truly understanding container
Truly understanding containerTruly understanding container
Truly understanding container
 
Enterprise Docker
Enterprise DockerEnterprise Docker
Enterprise Docker
 
왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
RancherOS Introduction
RancherOS IntroductionRancherOS Introduction
RancherOS Introduction
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google Kubernetes
 
Docker 사내교육 자료
Docker 사내교육 자료Docker 사내교육 자료
Docker 사내교육 자료
 
Docker at Deview 2013
Docker at Deview 2013Docker at Deview 2013
Docker at Deview 2013
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
AWS + Docker in Vingle
AWS + Docker in VingleAWS + Docker in Vingle
AWS + Docker in Vingle
 

Ähnlich wie Docker at Deview 2013

[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1Ji-Woong Choi
 
리눅스 시작하기
리눅스 시작하기리눅스 시작하기
리눅스 시작하기Pete Lee
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편Sam Kim
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편Sam Kim
 
1. Docker Network (1)
1. Docker Network (1)1. Docker Network (1)
1. Docker Network (1)DEVELOPER.NET
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기Chanwoong Kim
 
Introduction to Linux #1
Introduction to Linux #1Introduction to Linux #1
Introduction to Linux #1UNIST
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Juwon Kim
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호용호 최
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)Ji-Woong Choi
 
Backend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker PrincipalBackend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker PrincipalKyunghun Jeon
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 

Ähnlich wie Docker at Deview 2013 (20)

why docker
why dockerwhy docker
why docker
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
리눅스 시작하기
리눅스 시작하기리눅스 시작하기
리눅스 시작하기
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편
 
1. Docker Network (1)
1. Docker Network (1)1. Docker Network (1)
1. Docker Network (1)
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
Introduction to Linux #1
Introduction to Linux #1Introduction to Linux #1
Introduction to Linux #1
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
 
Backend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker PrincipalBackend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker Principal
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
Docker storage
Docker storageDocker storage
Docker storage
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
Docker Container
Docker ContainerDocker Container
Docker Container
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 

Docker at Deview 2013