Docker at Deview 2013

2,059 views

Published on

docker presentation at Deview 2013 at Korea

0 Comments
19 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,059
On SlideShare
0
From Embeds
0
Number of Embeds
424
Actions
Shares
0
Downloads
57
Comments
0
Likes
19
Embeds 0
No embeds

No notes for slide

Docker at Deview 2013

  1. 1. docker lightweight linux container in Deview 2013 judekim ( baas.io developer - KT ) 1 13년 10월 15일 화요일
  2. 2. speaker 김영찬 ( @modestjude ) http://judekim.tistory.com * PHP/Java developer * baas.io in KT * KPNS ( Push Notification ) Previously * KTH 2 13년 10월 15일 화요일
  3. 3. Index • • • • • • • about docker why docker? inside docker demo docker use cases limitations epilogue 3 13년 10월 15일 화요일
  4. 4. about docker • why docker? • inside docker • demo • docker use cases • limitations • epilogue 13년 10월 15일 화요일
  5. 5. docker [dɒkəә] 부두노동자 13년 10월 15일 화요일
  6. 6. docker [dɒkəә] 부두노동자 13년 10월 15일 화요일
  7. 7. • 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일 화요일
  8. 8. • docker는 거의 어디에서나 실행되는 경량이 면서 portable하고, 자급자족인 컨테이너 응용 프로그램의 배포를 자동화하는 오픈소스 엔진 입니다. 7 13년 10월 15일 화요일
  9. 9. • docker는 거의 어디에서나 실행되는 경량이 면서 portable하고, 자급자족인 컨테이너 응용 프로그램의 배포를 자동화하는 오픈소스 엔진 입니다. ?? at wh 7 13년 10월 15일 화요일
  10. 10. 그냥 한번 해보자! 8 13년 10월 15일 화요일
  11. 11. • 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일 화요일
  12. 12. run CentOS6.4 in Ubuntu http://youtu.be/xL9e8YaugSY 10 13년 10월 15일 화요일
  13. 13. hello world http://youtu.be/w4jfLy633xM 11 13년 10월 15일 화요일
  14. 14. docker • dotCloud 내부 프로젝트로 시작 (2013.01) • python -> go • docker는 현재 다음 기술들로 구현됨 LinuX Containers Control Groups & Namespaces AUFS 12 13년 10월 15일 화요일
  15. 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일 화요일
  16. 16. • 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일 화요일
  17. 17. • 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일 화요일
  18. 18. • about docker why docker • inside docker • demo • docker use cases • limitations • epilogue 13년 10월 15일 화요일
  19. 19. Evolution of IT 13년 10월 15일 화요일
  20. 20. The challenge 13년 10월 15일 화요일
  21. 21. NxM Matrix 13년 10월 15일 화요일
  22. 22. NxM Matrix ep D 13년 10월 15일 화요일 de en yh nc l!! el
  23. 23. 비슷한 사례가 없었을까? 13년 10월 15일 화요일
  24. 24. 1960년 이전의 화물운송 13년 10월 15일 화요일
  25. 25. 마찬가지로 NxM Matrix 13년 10월 15일 화요일
  26. 26. 마찬가지로 NxM Matrix oh ls A 13년 10월 15일 화요일 l!! el
  27. 27. 그럼 어떻게 해결했을까? 13년 10월 15일 화요일
  28. 28. 화물 운송의 해결책은? 13년 10월 15일 화요일
  29. 29. NxM 문제가 해결되었다! 13년 10월 15일 화요일
  30. 30. container로 만들어진 에코시스템 13년 10월 15일 화요일
  31. 31. 그렇다면 우리의 해결책은? 13년 10월 15일 화요일
  32. 32. 리눅스에도 container가 있었다.. 13년 10월 15일 화요일
  33. 33. 리눅스에도 container가 있었다.. 단언컨대 container는.. 13년 10월 15일 화요일
  34. 34. 리눅스에도 container가 있었다.. 13년 10월 15일 화요일
  35. 35. docker는 코드를 위한 container 운송시스템이다 13년 10월 15일 화요일
  36. 36. docker는 상황을 더 단순하게 만듭니다. 13년 10월 15일 화요일
  37. 37. docker는 상황을 더 단순하게 만듭니다. 13년 10월 15일 화요일
  38. 38. 개발자의 관심 • 나의 container 내(in)에 있는 것들에 대해서... • my code • my libraries • my package manager • my app • my data 13년 10월 15일 화요일
  39. 39. build once and run anywhere ( for developers ) 13년 10월 15일 화요일
  40. 40. 시스템 운영자의 관심 • container 밖의 것들에 대해서... • logging • remote access • network configuration • monitoring 13년 10월 15일 화요일
  41. 41. configure once run anything ( by devops ) 13년 10월 15일 화요일
  42. 42. Linux containers • • 13년 10월 15일 화요일 run everywhere • • 커널 버전과 관계없이 Host 배포판과 관계없이 run anything • • Host에서 동작한다면 container에서도 동작한다. 즉, 리눅스 커널에서 동작한다면 가능하다.
  43. 43. docker는 마찬가지로 (linux)contianer를 사용하여 NxM 문제를 해결했습니다. 13년 10월 15일 화요일
  44. 44. • 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일 화요일
  45. 45. • 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일 화요일
  46. 46. • about docker • why docker inside docker • demo • docker use cases • limitations • epilogue 13년 10월 15일 화요일
  47. 47. 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일 화요일
  48. 48. 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일 화요일
  49. 49. 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일 화요일
  50. 50. 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일 화요일
  51. 51. 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일 화요일
  52. 52. 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일 화요일
  53. 53. 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일 화요일
  54. 54. containers이어야 하는 이유 • speed : boots in seconds • footprint : 100-1,000 containers on one machine. 13년 10월 15일 화요일
  55. 55. containers vs VMs 13년 10월 15일 화요일
  56. 56. docker 경량화의 비법 델타 Δ 13년 10월 15일 화요일
  57. 57. docker container 기본 flow push build 13년 10월 15일 화요일 search pull run
  58. 58. application 의 업데이트도 간단 13년 10월 15일 화요일
  59. 59. 그럼 어떻게 docker가 이렇게 동작할까요? 13년 10월 15일 화요일
  60. 60. LinuX Container ( LXC ) • • • • • 또 다른 리눅스 시스템에서 리눅스 시스템을 구동 container는 리눅스 박스내의 process 그룹 container 안에서는 VM처럼 보임 container 밖에서는 process 처럼 보임 스팀팩 맞은 chroot 46 13년 10월 15일 화요일
  61. 61. outside (host) > ps -ax 47 13년 10월 15일 화요일
  62. 62. outside (host) > ps -ax 47 13년 10월 15일 화요일
  63. 63. outside (host) > ps -ax 47 13년 10월 15일 화요일
  64. 64. outside (host) > ps -ax 47 13년 10월 15일 화요일
  65. 65. outside (host) > ps -ax 47 13년 10월 15일 화요일
  66. 66. 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일 화요일
  67. 67. Isolation with cgroups • memory • cpu • block I/O : not perfect • devices 49 13년 10월 15일 화요일
  68. 68. AUFS ( Advanced multi layered Unification FileSystem ) • • layered 파일 시스템 • rootfs(루트파일시스템)에 있는 내용을 수정할 수 있 으나, 수정한 내용은 rw 디렉토리로 이동된다. 최상위 layer만 읽기 쓰기가 가능한 layer로 설정되어 있음 ( container ) 50 13년 10월 15일 화요일
  69. 69. more union file system in docker 13년 10월 15일 화요일
  70. 70. File system - bootfs - rootfs 52 13년 10월 15일 화요일
  71. 71. bootfs • bootloader • kernel • 유저들은 여기에 어떤 수정도 할 수 없다. 53 13년 10월 15일 화요일
  72. 72. rootfs • 일반적인 디렉토리를 포함한다. ( /dev, /bin, /etc ) • 환경설정 및 실행파일 그리고 라이브러리파일 들이 rootfs에 있다. ( like bash, ls ... ) 54 13년 10월 15일 화요일
  73. 73. Layer - 전통적인 linux 부팅 순서 . rootfs를 읽기 전용으로 마운트 . rootfs 무결성 검사 . rootfs를 읽기쓰기 모드로 변경 - docker 는 오직 rootfs를 읽기 전용으 로 마운트 한다. 대신 읽기쓰기가 가능한 레이어를 추가한다. ( it's ) 55 13년 10월 15일 화요일
  74. 74. Layer - 전통적인 linux 부팅 순서 . rootfs를 읽기 전용으로 마운트 . rootfs 무결성 검사 . rootfs를 읽기쓰기 모드로 변경 - docker 는 오직 rootfs를 읽기 전용으 로 마운트 한다. 대신 읽기쓰기가 가능한 레이어를 추가한다. ( it's container ) 55 13년 10월 15일 화요일
  75. 75. Image - 읽기 전용 레이어 image로 부름 - image는 상태를 가질 수 없음 - 부모 image가 없는 image를 base image라고 함 ( e.g. Debian ) 56 13년 10월 15일 화요일
  76. 76. Container - 읽기쓰기가 가능한 레이어 - 최상위 레이어 - 상태를 가질 수 있음 - container를 docker의 commit 명령어 를 통해 이미지로 만들수도 있으며 만든 이미지를 다시 parent image로 사용할 수 있음. 즉 재사용할 수 있음. 57 13년 10월 15일 화요일
  77. 77. Look down 58 13년 10월 15일 화요일
  78. 78. Union file system • 일반적으로 리눅스에서는 디렉토리 하나에 하나의 파일시스 템만 마운트하는게 대부분. • 만일 동일한 디렉토리에 둘 이상의 파일 시스템을 마운트하 면 항상 마지막에 마운트한 파일 시스템 내용만 보여 이전에 마운트한 파일 시스템 내용은 접근이 불가능. • 병합(union)마운트란 하나의 디렉토리에 여러 파일시스템을 마운트 하여 여러 파일 시스템 내용이 합쳐지는 것을 의미. • 나중 마운트한 파일이 우선시 됨. 만일 writable mount가 되 었다면 마운트 파일을 지웠을때, 그 정보도 유지됨. 59 13년 10월 15일 화요일
  79. 79. Demo union file system in docker http://youtu.be/uHLs5ljV20U 60 13년 10월 15일 화요일
  80. 80. http://youtu.be/uHLs5ljV20U 60 13년 10월 15일 화요일
  81. 81. 좀전에 ubuntu image에서 /tmp/test2파일을 추가한것은 container의 rootfs에서는 확인이 되나, rw 에서는 확인이 되지 않습니다. 61 13년 10월 15일 화요일
  82. 82. rootfs는 image를 모두 가지고 있고, 그 위에 변화하는 값까지 가지고 있으나, rw는 image대비 변화값(Δ델타)만을 가지고 있기 때문입니다. 62 13년 10월 15일 화요일
  83. 83. 이미 image에 존재하는 /tmp/test2이니 굳이 rw에서는 변화량으로 확인되지 않는 것이죠. 63 13년 10월 15일 화요일
  84. 84. 만일 container의 rootfs디렉 토리에서 파일을 생성한다면 rw디렉토리에 기록될까요? 64 13년 10월 15일 화요일
  85. 85. docker를 통하지 않고, 직접 데이터를 수정한 느낌인데 과연 될까요? 65 13년 10월 15일 화요일
  86. 86. 네 기록됩니다. docker가 하는것이 아닌 union file filesystem 고유의 기능에 의한 것이니까요. 66 13년 10월 15일 화요일
  87. 87. docker는 단지 파일시스템의 마운트 룰셋만 정의 및 관리하고, 직접적인 파일 핸들링은 AUFS가 합니다. 67 13년 10월 15일 화요일
  88. 88. Efficiency 68 13년 10월 15일 화요일
  89. 89. Efficiency almost no overhead 68 13년 10월 15일 화요일
  90. 90. Efficiency almost no overhead 뻥치시네~ 68 13년 10월 15일 화요일
  91. 91. • • 프로세스들은 고립되어 있지만, 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일 화요일
  92. 92. 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
  93. 93. 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일 화요일
  94. 94. 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일 화요일
  95. 95. • about docker • why docker • inside docker demo • docker use cases • limitations • epilogue 13년 10월 15일 화요일
  96. 96. hipache + nginx with php5 https://github.com/dotcloud/hipache 72 13년 10월 15일 화요일
  97. 97. 시나리오 73 13년 10월 15일 화요일
  98. 98. 1. php + nginx로 구현된 web application 서버들을 hipache를 통해 로드밸런싱 구현 2. web application 수정 및 deploy 74 13년 10월 15일 화요일
  99. 99. 80 80 hipache 8001 8002 80 web 1 80 web 2 75 13년 10월 15일 화요일
  100. 100. 80 80 hipache 8001 8002 8003 80 web 1 80 web 2 80 web 3 v.0.3 copy & modify 75 13년 10월 15일 화요일
  101. 101. 80 80 hipache 8001 8002 8003 80 web 1 80 web 2 80 web 3 v.0.3 copy & modify 75 13년 10월 15일 화요일
  102. 102. 로드밸런싱 => hipache 사용 • git clone https://github.com/dotcloud/ hipache.git • sudo docker build -t dotcloud/hipache . 76 13년 10월 15일 화요일
  103. 103. 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일 화요일
  104. 104. demo http://youtu.be/xC-2b7iGBno 78 13년 10월 15일 화요일
  105. 105. • about docker • why docker • inside docker • demo docker use cases • limitations • epilogue 13년 10월 15일 화요일
  106. 106. • • • • • • • • • 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일 화요일
  107. 107. Testing 81 13년 10월 15일 화요일
  108. 108. 유닛 테스팅 • 자신의 환경과 테스트를 분리하기 위해 컨테 이너를 사용 • 테스트후에 data등을 정리 하기 위해 더이상 신경쓰지 않아도 됨 • 다중 머신에 걸친 테스트도 문제 없음 82 13년 10월 15일 화요일
  109. 109. 시스템 테스팅 • 쉽게 테스트와 다른 시스템 환경설정을 만들 수 있음 • 테스트서버가 끊기거나 재구축에 대해서 더이 상 걱정할 필요 없음 • 사용예 : Test Fabric script (http://agiliq.com/blog/2013/06/self-testing-fabfile-using-docker/) 83 13년 10월 15일 화요일
  110. 110. Continuous integration • • • 개별 소스 커밋에 대해서 유닛 테스트를 할 수 있음 StriderCD.com - Open source CI server • deploy전에 docker 컨테이너를 통해 CI test를 수행 TravisCI docker를 활용하고 있음 84 13년 10월 15일 화요일
  111. 111. Continuous integration • • • 개별 소스 커밋에 대해서 유닛 테스트를 할 수 있음 StriderCD.com - Open source CI server • deploy전에 docker 컨테이너를 통해 CI test를 수행 TravisCI docker를 활용하고 있음 84 13년 10월 15일 화요일
  112. 112. Deployment 85 13년 10월 15일 화요일
  113. 113. 86 13년 10월 15일 화요일
  114. 114. 개발 86 13년 10월 15일 화요일
  115. 115. 개발 테스트 86 13년 10월 15일 화요일
  116. 116. 개발 git repository 테스트 86 13년 10월 15일 화요일
  117. 117. 개발 git repository 테스트 86 13년 10월 15일 화요일 CI jenkins
  118. 118. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins
  119. 119. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins
  120. 120. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins
  121. 121. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins
  122. 122. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins
  123. 123. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins
  124. 124. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins stage server
  125. 125. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins stage server
  126. 126. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins stage server
  127. 127. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins stage server
  128. 128. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins stage server
  129. 129. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins stage server
  130. 130. 개발 git repository 테스트 develop server 86 13년 10월 15일 화요일 CI jenkins stage server production server
  131. 131. 87 13년 10월 15일 화요일
  132. 132. 개발 87 13년 10월 15일 화요일
  133. 133. 개발 git repository 테스트 87 13년 10월 15일 화요일
  134. 134. 개발 git repository 테스트 87 13년 10월 15일 화요일 hook git clone and docker build
  135. 135. 개발 git repository 테스트 docker private registry 87 13년 10월 15일 화요일 hook test pass git clone and docker build CI ( test container )
  136. 136. 개발 git repository 테스트 docker private registry docker pull develop server 87 13년 10월 15일 화요일 hook test pass git clone and docker build CI ( test container )
  137. 137. 개발 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 )
  138. 138. 개발 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
  139. 139. 개발 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
  140. 140. 환경설정을 docker container에 포함하기 때문에 어디서나 동일하게 동작합니다. 88 13년 10월 15일 화요일
  141. 141. old way codes 89 13년 10월 15일 화요일
  142. 142. codes 89 13년 10월 15일 화요일
  143. 143. new way with docker codes + environment It’s container of docker 90 13년 10월 15일 화요일
  144. 144. vagrant = docker 91 13년 10월 15일 화요일
  145. 145. vagrant = docker Vagrantfile = Dockerfile 91 13년 10월 15일 화요일
  146. 146. vagrant = docker Vagrantfile = Dockerfile vm vs container 91 13년 10월 15일 화요일
  147. 147. docker at baas.io 13년 10월 15일 화요일
  148. 148. pasta ( for custom code ) 93 13년 10월 15일 화요일
  149. 149. customized node.js 94 13년 10월 15일 화요일
  150. 150. needs - process isolation - memory, cpu resource limitation 95 13년 10월 15일 화요일
  151. 151. docker on cloud ( ucloud ) 96 13년 10월 15일 화요일
  152. 152. • about docker • why docker • inside docker • demo • docker use cases limitations • epilogue 13년 10월 15일 화요일
  153. 153. kernel dependency in 0.6 architecture ( e.g. LXC ) 98 13년 10월 15일 화요일
  154. 154. = only ubuntu 12.04 higher (now) 99 13년 10월 15일 화요일
  155. 155. new architecture is coming... ( pluggable API ) 100 13년 10월 15일 화요일
  156. 156. 그럼에도 불구하고 101 13년 10월 15일 화요일
  157. 157. 그럼에도 불구하고 충분히 쓸만하다. 101 13년 10월 15일 화요일
  158. 158. • about docker • why docker • inside docker • demo • docker use cases • limitations epilogue 13년 10월 15일 화요일
  159. 159. 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일 화요일
  160. 160. • 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일 화요일
  161. 161. docker 새로운 아키텍쳐 finally anywhere!! 13년 10월 15일 화요일
  162. 162. 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
  163. 163. similar to docker ( lem-kut-fee ) https://github.com/google/lmctfy since 2013.10.02 13년 10월 15일 화요일
  164. 164. 감사합니다. - judekim i.judekim@gmail.com 13년 10월 15일 화요일
  165. 165. 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
  166. 166. why docker • docker의 경우 linux container의 주요 기능 에 몇몇 편리함 및 공유를 덧붙였을뿐이지 않 은가? 직접 linux container를 사용해서 구현해도 되 지 않을까? 13년 10월 15일 화요일
  167. 167. containers before docker 13년 10월 15일 화요일
  168. 168. containers after docker 13년 10월 15일 화요일
  169. 169. VM vs containers • 서로 상호 보완 관계임 • VM은 하드웨어 리소스의 chunk를 할당하는 데 가장 유용합니다. • container는 소프트웨어 전달 단위로서 매우 가볍고 완벽하게 프로세스 수준에서 작동합니 다. 13년 10월 15일 화요일

×