「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- Linuxコンテナを使った、主にソフトウェアの自動デプロイメント(展開)を支援するシステム
- dotCloud社(現Docker社)が開発し、2013年にオープンソースのプロジェクトとして公開
Linuxコンテナ †
Linuxネイティブなコンテナ。
方式 †
- Linux OSの持つコンテナ機能やリソースの管理機能
などをベースに作られた、コンテナ型の仮想化技術
- VSSでも使用しているCopy on Writeの仕組みを
UnionFileSystem?の機能で実現し、コンテナ型の仮想化を行っている。
- コンテナ自体は、Dockerが登場する以前から存在し、
古くから商用製品にも採用されている技術。
- 一般的に、Linux OS上での分離された空間を「Linuxコンテナ」と呼び、
Linuxコンテナは、一般的に、LXCとも呼ばれる。
特徴 †
- マシン全体を仮想化する仮想化技術と比べると、
コンテナによる仮想化は軽量・高速で、実行に必要なリソースも少なくて済む。
- システムの構成変更や展開の容易さなどから、
開発段階から実運用環境まで、幅広く利用されている。
- コンテナ上で動作するプログラムは、基本的にはLinuxのバイナリ。
Dockerコンテナ †
- 現在のDockerは、libcontainerを利用するようになり、
Linuxコンテナに依存する部分が無くなった。
- このため、LinuxコンテナとDockerコンテナは、同じものではないが、
考え方という観点では、LinuxコンテナもDockerコンテナも、
同様の分離された空間を提供することには違いがない。
周辺機能 †
イメージ †
Dockerファイル †
Docker multi stage build †
- Docker 17.05で導入された革新的な機能。
- docker buildを複数のビルドに分割して実行できる。
- 今までも手動で複数のDockerファイルを組み合わせればできたが、
1ファイルで書けるようになり気軽に中間イメージを色々使えるようになった。
Dockerイメージ †
- ベースイメージにCopy on Writeした差分。
- Dockerイメージを使用してDockerコンテナを起動する。
- イメージ・レイヤが上層に積み上げられる。
Docker Registry (レジストリ) †
「Docker」向けに、作成したDockerイメージを公開するサービス
クライアント †
Dockerコマンド †
サーバ †
Docker Engine (エンジン) †
Docker イメージの作成と Docker コンテナの実行に必要なコア機能を提供。
Docker Swarm (スウォーム) †
ホストのクラスタリングとコンテナのスケジューリングをする。
Docker Compose (コンポーズ) †
複数のコンテナを使うアプリケーションを定義する。
Docker Machine (マシン) †
自分のネットワークやクラウド上に、
自動的にコンテナをデプロイする。
Dockerデーモン †
DockerデーモンにDockerイメージの実行を要求すると、Dockerデーモンは、
- この動作をカスタマイズするにはいくつかの方法がある。
インストール †
CentOS †
Ubuntu †
利用 †
CentOS †
Ubuntu †
参考 †
Docker Documentation †
Dockerfile †
Compose file †
@IT †
いまさら聞けないDocker入門 †
http://www.atmarkit.co.jp/ait/series/1511/
超入門Docker †
http://www.atmarkit.co.jp/ait/series/5086/index.html
※ この記事は、Windows寄りになっている。
山市良のうぃんどうず日記 †
see the elephant †
さくらのナレッジ †
Qiita †
docker コマンド †
docker-compose コマンド †
コンテナ内で操作 †
Docker multi stage build †