「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- Linuxコンテナを使った、主にソフトウェアの自動デプロイメント(展開)を支援するシステム
- dotCloud社(現Docker社)が開発し、2013年にオープンソースのプロジェクトとして公開
Linuxコンテナ †
Linuxネイティブなコンテナ。
方式 †
- Linux OSの持つコンテナ機能やリソースの管理機能などをベースに作られた、コンテナ型の仮想化技術
- コンテナ自体は、Dockerが登場する以前から存在し、古くから商用製品にも採用されている技術。
- 一般的に、Linux OS上での分離された空間を「Linuxコンテナ」と呼び、Linuxコンテナは、一般的に、LXCとも呼ばれる。
特徴 †
- マシン全体を仮想化する仮想化技術と比べると、
コンテナによる仮想化は軽量・高速で、実行に必要なリソースも少なくて済む。
- システムの構成変更や展開の容易さなどから、
開発段階から実運用環境まで、幅広く利用されている。
- コンテナ上で動作するプログラムは、基本的にはLinuxのバイナリ。
Dockerコンテナ †
- 現在のDockerは、libcontainerを利用するようになり、
Linuxコンテナに依存する部分が無くなった。
- このため、LinuxコンテナとDockerコンテナは、同じものではないが、考え方という観点では、
LinuxコンテナもDockerコンテナも、同様の分離された空間を提供することには違いがない。
機能 †
Build †
コンテナ・イメージ(Dockerイメージ)をビルドする機能
Ship †
Dockerイメージを共有する機能
(コンテナを積む、輸送するイメージ)
Run †
Dockerコンテナ で Dockerイメージを実行させる機能
- プロダクション環境では複数のホストで動作させる。
- これには、オーケストレーション・ツールを利用する。
サブシステム †
イメージ †
Dockerファイル †
Docker multi stage build †
- Docker 17.05で導入された革新的な機能。
- Buildを複数に分割して実行できる。
- 今までも手動で複数のDockerファイルを組み合わせればできたが、
1ファイルで書けるようになり気軽に中間イメージを色々使えるようになった。
Dockerイメージ †
Dockerレジストリ †
「Docker」向けに、作成したDockerイメージを公開するサービス
クライアント †
Dockerコマンド †
サーバ †
Docker Engine (エンジン) †
Dockerイメージの作成とDockerコンテナの実行に必要なコア機能を提供。
Docker Swarm (スウォーム) †
Docker Compose (コンポーズ) †
複数のDockerコンテナを使うアプリケーションを定義する。
Docker Machine (マシン) †
自分のネットワークやクラウド上に、自動的にDockerコンテナをデプロイする。
Dockerデーモン †
DockerデーモンにDockerイメージの実行を要求すると、Dockerデーモンは、
- この動作をカスタマイズするにはいくつかの方法がある。
仕組み †
名前空間 †
namespace
リソース管理 †
cgroups
ネットワーク構成 †
仮想ブリッジ/仮想NIC
イメージ管理 †
AUFS †
Btrfs †
Device Mapper †
OverlayFS †
ZFS †
エディション †
CE †
EE †
インストール †
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 †