ã ãã¶åããDockerï¼Linuxã³ã³ããï¼ã®ããã©ã¼ãã³ã¹ã«ã¤ãã¦ãéããã¨ã¯éãã ãããã©ã©ã®ç¨åº¦éãã®ããããé ããã¨ããããªãä½ãããã©ã¼ãã³ã¹ã«ã¨ã£ã¦éè¦ãªã®ãï¼AUFSãé ãã¨ãããããã®ï¼ãæ°ã«ãªã£ã¦ããã®ã§ãä»åã¯
ã§ç´¹ä»ããã¦ãã Docker ã®ããã©ã¼ãã³ã¹æ¤è¨¼ã«é¢ãã IBM ã® Research Report ãèªãã ãReport ã®å 容ããã¼ã¹ã«ãDocker ã®ããã©ã¼ãã³ã¹ã®åæãªã©ãã¾ã¨ãã¦ã¿ãã Report ã®ã¿ã¤ãã«ã¯ An Updated Performance Comparison of Virtual Machines and Linux Containers ã GitHub ã«ãã³ããã¼ã¯ã³ã¼ãã¨å®é¨ãã¼ã¿ãç½®ãã¦ãã£ã¦ã¡ããã¨ãã¦ãã
åæ
ã¾ããVMã¨ã³ã³ããã®æ´å²ãæ¯ãè¿ãã®ã«知らぬはエンジニアの恥。今さら聞けない【コンテナ/仮想化技術】11選 - paiza開発日誌 ãä½µãã¦èªãã§ããã¨ããããã
次ã«ãEtsukata blog: Docker を支える Linux Kernel の機能 (概要編) 㨠Dockerを支える技術
ã Docker ã使ã£ã¦ãã«ã¼ãã«å¨ãã®æè¡ã«ã¤ãã¦ããããããã®ã§ã絶対èªã¿ããã
ç¹ã«ãDocker ã®ãã©ã¤ãå¨ãã«ã¤ãã¦ãexec driverãstorage driverãHost NetworkingãVolume ã«ã¤ãã¦è»½ãè¦ã¦ããã¨è¯ãããã
exec-driver: Docker 0.9: introducing execution drivers and libcontainer | Docker Blog
- Docker 㯠LXC ã®ã©ããã¼ã¨ãè¨ããã¦ããã©ãä»ã¯ Linux Containers API ãç´æ¥å©ã Go ã©ã¤ãã©ãªã使ããã¦ãã(LXC ããã®ä»ã® Linux ã³ã³ããã®ããã³ãã¨ã³ããé¸ã¹ãï¼
storage-driver: Docker 0.7 runs on all Linux distributions – and 6 other major features | Docker Blog
- Docker ã®ã¤ã¡ã¼ã¸å·®åç®¡çæ©è½ã¯å¾æ¥ AUFS ã®ã¿ã使ããã¦ãã¦ãAUFS 㯠Linux ã«ã¼ãã«ã®ã¡ã¤ã³ã©ã¤ã³ã®æ©è½ã§ã¯ãªãã®ã§ãã«ã¼ãã«æ¨æºã® Device Mapper (dm-thin)ããã©ã¤ãã«ã§ããããã«ãªã£ãã Btrfs ã使ããã
- Comprehensive Overview of Storage Scalability in Docker | Red Hat Developer Blog
ã«ã¤ãã¦ãåèã«ãªãã
Host Networking: Advanced networking - Docker Documentation
- Docker ã¯ã³ã³ããå ã®ãã¼ãããã¹ãå´ã®ä»»æã®ãã¼ãçªå·ããã¤ãã¼ãã¨ãã¦å ¬éã§ãããã¤ã¾ããNAPTããããã ãã©ãNAPTã®ãªã¼ãããããåé¿ããããã«ãã³ã³ããã§ã¯ãªããã¹ãã®ãããã¯ã¼ã¯ã¹ã¿ãã¯ã使ãããã«ã§ãã Host Networking æ©è½ãããã
- å¿ ããããNAPTãªã¼ããããåé¿ã®ããã ãã§ã¯ãªãããã¹ãã¨åãã¤ã³ã¿ãã§ã¼ã¹ã¿ãã¦ã¦ã»ããã¨ããããã
Volume: Managing data in containers - Docker Documentation
- ã³ã³ããéããã³ãã¹ãéã®ãã¼ã¿å ±æã®ããã«ãå·®åãã¡ã¤ã«ã·ã¹ãã ï¼AUFSãªã©ï¼ããã¤ãã¹ããç¹å¥ãªãã£ã¬ã¯ããªãããããã³ã³ãããã¨ã«ãã¼ã¿ãæ ¼ç´ãããã®ã§ã¯ãªããDocker ã°ãã¼ãã«ã§åç §ã§ãããã£ã¬ã¯ããªã
- docker commit data container with VOLUME · Issue #6999 · docker/docker · GitHub
- docker - Data Volume と Data Volume Container - Qiita
æ¦è¦ã¨èå¯
Report èªä½ã¯ãã¯ã©ã¦ã(IaaS)äºæ¥è è¦ç¹ã§ãã³ã³ãã(Docker), VM(KVM), Native Linuxï¼ä»®æ³åãã¦ãªãæ®éã®Linuxï¼ ã®3è ã®æ§è½ãæ¯è¼ãã¦ãã æ§è½è©ä¾¡ã®è¦³ç¹ã¯ãããã»ããµï¼FLOPSï¼ãã¡ã¢ãªå¸¯åå¹ ãã¡ã¢ãªIOPSããããã¯ã¼ã¯å¸¯åå¹ ããããã¯ã¼ã¯ã¬ã¤ãã³ã·ããããã¯ããã¤ã¹ã®å¸¯åå¹ ããããã¯ããã¤ã¹ã®IOPSãªã©ã¨ãªã£ã¦ããã LINPACKã netperf ã fio ãªã©ãç¨ãã OS ã®ãã³ããã¼ã¯ã ãã§ãªããå®ç¨çãªã¢ããªã±ã¼ã·ã§ã³ã¨ã㦠MySQL 㨠Redis ã«ã¤ãã¦ããã³ããã¼ã¯ããã¦ããã èªåã®å ´åã¯ãEC2 ã¤ã³ã¹ã¿ã³ã¹ã¾ãã¯ãªã³ãã¬ã® Xen Domain U ã§ Docker ã³ã³ãããåãããã¨ã«ãªãã ãããããVM 㨠ã³ã³ããã®æ¯è¼ããã¯ãNative Linux ã¨ã³ã³ããã®æ¯è¼ã«èå³ããã£ãã
ã¬ãã¼ãã®ï¼ç« ã®ã°ã©ããã¿ãã¨ãããããçµè«ããè¨ãã¨ãDocker ã®ãªã¼ããããããªãã¹ã忏ããæ§æã«ããã°ãåè©ä¾¡ã«ãã㦠Docker 㯠Native Linux ã¨åçãããå£ãç¨åº¦ã§ãå®ç¨ä¸ããã»ã©åé¡ã«ãªããã¨ã¯ãªãããã ã CPUãã¡ã¢ãªå¨ãã¨ãããã¯ã¼ã¯ã¨ãããã¯ããã¤ã¹ã®å¸¯åå¹ ã«ã¤ãã¦ã¯åçã§ããã CPU/ã¡ã¢ãªéç´ãªã¢ããªã±ã¼ã·ã§ã³ã¨ãåç»é ä¿¡ãµã¼ãã¿ãããªå¸¯åå¹ éç´ãªã¢ããªã±ã¼ã·ã§ã³ãªãæ°ã«ãããã¨ã¯ç¹ã«ä½ããªãã
éã«ã MySQL 㨠Redis ã®ãããªã¹ãã¬ã¼ã¸ã¾ãã¯ãããã¯ã¼ã¯ã®IOPSãæ¯é çãªã¢ããªã±ã¼ã·ã§ã³ã§ã¯ããã©ã¼ãã³ã¹ãå£åããã åå 㯠AUFS 㨠NAPT ã§ãNAPT ã®ãã¼ã夿ãªã¼ãããã㨠I/O è¦æ±ã AUFS ã®åãã¡ã¤ã«ã·ã¹ãã 層ãééãããªã¼ãããããããã ãã ããDocker ã® Host Networking ã¨ã Volume æ©è½ã使ã£ã¦ãåè¿°ã®ãªã¼ãããããããªãã®é¨åã¾ã§åæ¸ãããã¨ãã§ãããï¼ããã§ããMySQLã«ã¤ãã¦ã¯Nativeã¨æ¯ã¹ã¦å¤å°æ§è½ãè½ã¡ããã¬ã¤ãã³ã·ã®å ããªå·®ãã¹ã«ã¼ãããã«å½±é¿ãä¸ãã¦ãããï¼ãã ãããã¯ã³ã³ããã®ãã¼ã¿ããªãã£ã¨ããã©ã¼ãã³ã¹ã®ãã¬ã¼ããªãã«ãªãã ä¾ãã°ãNAPT ã使ããªãããã¨ãã³ã³ãããå ¬éãããã¼ãã¨ãã¹ãã®ãã¼ããã³ã³ããªã¯ããããã¨ããããDockerã³ã³ãããã©ãã§ãåãã¨ããããã§ã¯ãªããªããã¾ããVolume æ©è½ã使ãã¨ãDocker ã¤ã¡ã¼ã¸ã«ãã¼ã¿ãæ¸ãåºããã¨ãã§ããªããããã³ã³ããããã¼ã¿ãã¨ä»æã«æã£ã¦è¡ãã¥ãããªã£ã¦ãã¾ãã
CPUãã¡ã¢ãªå¨ãã¯é常ç¨éã«ã¯ãããªã«æ°ã«ãããã¤ã³ããªãã£ãã®ã§ããããã¯I/O or ãããã¯ã¼ã¯I/Oéç´ãªã¢ããªã±ã¼ã·ã§ã³ï¼MySQL ã¨ã HAProxyï¼ä»¥å¤ã¯èªåã触ã£ã¦ããããªç°å¢ã®å ´åæ¬çªæå ¥ãã¦ãåé¡ãªããããªå°è±¡ãåããã MySQL ã Redis ã«ã¤ãã¦ã¯ã¹ãã¼ããã«ãªã®ã§ãããããã¤ã³ã¹ã¿ã³ã¹ã®å¢æ¸ãå¼ã£è¶ããã¹ãã¼ãã¬ã¹ãµã¼ãã»ã©æ°è»½ã«ã¯ã§ããªãã®ã§ãå¤å°äººéçãªãªãã¬ã¼ã·ã§ã³ãå ¥ã£ã¦ãããã ã¤ã¾ããããã»ã©ãã¼ã¿ããªãã£ãéè¦ãªããã§ã¯ãªããå®è¡ç°å¢ã¯Dockerãªã®ã§ãã®ã¾ã¾ã§ããã¼ã¿ã ã㯠Volume ãã£ã¬ã¯ããªã®å 容ããã¹ãã«æ¸ãåºãã¦å¥éã³ãã¼ãã¦ããã°ããã ã¾ããstatefull ãªã¢ããªã±ã¼ã·ã§ã³ã«ã¤ãã¦ã¯ãåãã¢ããªã±ã¼ã·ã§ã³ãåããã¹ãã§åãããªãéç¨ã«ãã¦ããã°ããã¼ãçªå·ã¯ã¦ã§ã«ãã¦ã³ãã¼ã決ãæã¡ãããã§ããããã
ã¹ã©ã¤ã
ç´°ããå®é¨æ¡ä»¶ãªã©ã¯ãã詳ããå 容ã«ã¤ãã¦ã¯ã¹ã©ã¤ãã¾ãã¯Report æ¬æãåç §ã
ææ³
ã¹ã©ã¤ãã®æå¾ã«ãæ¸ãã¦ããã©ãã³ã³ããã¯éé¢ãããããã»ã¹ãããã®ã¤ã¡ã¼ã¸ãªã®ã§ãVMã«æ¯ã¹ã¦éãã«æ±ºã¾ã£ã¦ãããNative Linuxã¨éè²ãªãã®ãã¾ããããã¨ããæããAUFS é ãã¨ããã®ãã¾ããããã¨ããæãã§ãDevice Mapper ã¨ã Btrfs ã¨ã®æ¯è¼ãæ°ã«ãªãã¨ãããAUFS以å¤ã® storage driver ã«ã¤ãã¦Comprehensive Overview of Storage Scalability in Docker | Red Hat Developer Blog ãåèã«ãªããï¼å¤§éã®ã³ã³ããã®ä½æã¨åé¤ã以ä¸ã«éãã§ããããææ¨ã¨ãªã£ã¦ããã®ã§ããã£ã¦ãããã¨ã¯ã ãã¶éãï¼
é¢ä¿ãªããã©ãDocker ã®æ¬çªæå ¥ã®åé¡ã¯ããã©ã¼ãã³ã¹äºã 以ä¸ã«ãæ¢åã®ã¯ã¼ã¯ããã¼ã«ããã«çµã¿è¾¼ããã¨åé¡ãçºçããã¨ãã®ãããã°ã¾ãã¯é害対å¿ã§ããã¨ããã®ãããåå¹´ãããã®èªèã«ãªã£ã¦ããã
æ°ã«ãªãåèæç®
ä»åã® Report ã¯åèæç®ãè±å¯ã§ãããã¤ãæ°ã«ãªã£ãã®ã§ç´¹ä»ãã¦ããã
https://www.gronkulator.com/overhead.htmlhttps://www.gronkulator.com/overhead.html
Software Defined Boden: KVM and Docker LXC Benchmarking with OpenStack
ã¯ã¦ãªã§ã¯ãDocker 好ããªäººã¨ããè«æèªãã§ç¥è¦ãå ±æãããæ¬çªæå ¥ããã人ãåéãã¦ãã¾ãâââ
æ¡ç¨æ å ± - æ ªå¼ä¼ç¤¾ã¯ã¦ãª