Docker
どっかーソフト2013
アプリとその動作環境をひとまとめに箱詰めして、どこでも同じように動かせるようにするソフト(コンテナ技術)。環境の違いに悩まされる問題を和らげ、クラウド時代の開発・運用を大きく変えた。
時代背景
Docker公式ブログによれば、2013年のPyConで、創業者ソロモン・ハイクスがDockerを世界に初めて公開した。彼が壇上で指摘した課題は「サーバーへのコード配送は難しい(Shipping code to the server is hard)」というものだった。Dockerは、Linuxカーネルの機能・コピーオンライトのファイルシステム・開発者に親しみやすいGitの意味論(セマンティクス)といった、既存の技術の上に築かれたとされる。
概要
Dockerの核となる思想は、アプリケーションとその依存関係を標準化されたオープンフォーマットでコンテナ化することにより、開発者とオペレーション担当者の間の摩擦を劇的に減らすことにある。公式ブログによれば、11周年時点でDocker Hubは月間2600万のアクティブIP・1500万のリポジトリ・月間250億回のプルを記録し、登録開発者は1700万人、顧客企業は7万9000社以上に達していたという。
| 種類 | コンテナ |
|---|---|
| 得意 | 環境の再現 |
関連項目
- 仮想化一台の物理的な機械の上で、複数の仮想的なコンピュータを動かす技術。ハードを効率よく使えるようにし、後のクラウドやサーバー運用の基盤になった。
- GoGoogleが開発した、シンプルさと並行処理のしやすさを重視した言語。コンパイルが速く扱いやすいため、サーバーやクラウド基盤のソフトで広く採用されている。DockerやKubernetesもGoで書かれている。
- Linuxリーナス・トーバルズが学生時代に公開したUNIX系のOSカーネル。世界中の開発者が協力して育てるオープンソースの代表例となり、サーバーやスマートフォン(Android)など、いまや見えない所で世界を支えている。
- Gitリーナス・トーバルズが作った分散型のバージョン管理ソフト。誰がいつ何を変えたかを記録し、大勢での共同開発を支える。GitHubなどとともに、現代のソフト開発に欠かせない道具になった。