- 追加された行はこの色です。
- 削除された行はこの色です。
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>Linuxを触ってみる。]]
-戻る
--[[Linuxを触ってみる。]]
--[[言語等に依存しない汎用開発支援ツール]]
*目次 [#n5ee47e4]
#contents
*概要 [#b455eff1]
-[[Linuxコンテナ>#c0b2e7af]]を使った、主にソフトウェアの自動デプロイメント(展開)を支援するシステム
-dotCloud社(現Docker社)が開発し、2013年にオープンソースのプロジェクトとして公開
*Linuxコンテナ [#c0b2e7af]
Linuxネイティブなコンテナ。
**方式 [#p5c8e3f3]
-Linux OSの持つコンテナ機能やリソースの管理機能~
などをベースに作られた、コンテナ型の仮想化技術
-VSSでも使用しているCopy on Writeの仕組みを~
UnionFileSystemの機能で実現し、コンテナ型の仮想化を行っている。
-コンテナ自体は、Dockerが登場する以前から存在し、~
古くから商用製品にも採用されている技術。
-一般的に、Linux OS上での分離された空間を「Linuxコンテナ」と呼び、~
Linuxコンテナは、一般的に、LXCとも呼ばれる。
**特徴 [#kc543dbe]
-マシン全体を仮想化する仮想化技術と比べると、~
コンテナによる仮想化は軽量・高速で、実行に必要なリソースも少なくて済む。
-システムの構成変更や展開の容易さなどから、~
開発段階から実運用環境まで、幅広く利用されている。
-コンテナ上で動作するプログラムは、基本的にはLinuxのバイナリ。
**Dockerコンテナ [#u4d4949f]
-古いバージョンのDockerは、[[Linuxコンテナ>#c0b2e7af]]を使っていたため、~
[[Linuxコンテナ>#c0b2e7af]]もDockerコンテナも同一のものとして考えても差し支えなかった。
-現在のDockerは、libcontainerを利用するようになり、~
[[Linuxコンテナ>#c0b2e7af]]に依存する部分が無くなった。
-このため、[[Linuxコンテナ>#c0b2e7af]]とDockerコンテナは、同じものではないが、~
考え方という観点では、[[Linuxコンテナ>#c0b2e7af]]もDockerコンテナも、~
同様の分離された空間を提供することには違いがない。
-参考
--コンテナ技術の基礎知識 | Think IT(シンクイット)~
https://thinkit.co.jp/story/2015/08/11/6285
*周辺機能 [#n397cba0]
**イメージ [#sb48ec65]
***Dockerファイル [#ea5191dc]
-[[DockerFile>#n8067f04]]で[[Dockerイメージ>#vee01503]]を作成する。
***Docker multi stage build [#o9bb2f8b]
-Docker 17.05で導入された革新的な機能。
-docker buildを複数のビルドに分割して実行できる。
-今までも手動で複数の[[Dockerファイル>#ea5191dc]]を組み合わせればできたが、~
1ファイルで書けるようになり気軽に中間[[イメージ>#vee01503]]を色々使えるようになった。
-ユースケース
--依存関係の分離
---開発用ビルドの依存
---ランタイムの依存
--, etc.
***Dockerイメージ [#vee01503]
-ベースイメージにCopy on Writeした差分。
-Dockerイメージを使用して[[Dockerコンテナ>#u4d4949f]]を起動する。
-イメージ・レイヤが上層に積み上げられる。
***Docker Registry (レジストリ) [#hff8c9d7]
「Docker」向けに、作成した[[Dockerイメージ>#vee01503]]を公開するサービス
-Docker Hub
--Docker社が営利目的で開発・運営しているサービス。
--「[[Docker for Windows>https://techinfoofmicrosofttech.osscons.jp/index.php?Docker%20for%20Windows]]」向けの、Windowsコンテナも公開される。
**クライアント [#ea8eb7dc]
***Dockerコマンド [#jbff7b71]
-[[Qiita>#se48f3bb]]
***[[Kitematic]] [#pb50332d]
**サーバ [#p5449adb]
***Docker Engine (エンジン) [#w04476f3]
Docker イメージの作成と Docker コンテナの実行に必要なコア機能を提供。
***Docker Swarm (スウォーム) [#u512f6bd]
ホストのクラスタリングとコンテナのスケジューリングをする。
***Docker Compose (コンポーズ) [#n7abbd38]
複数のコンテナを使うアプリケーションを定義する。
***Docker Machine (マシン) [#p8e6e858]
自分のネットワークやクラウド上に、自動的にコンテナをデプロイする。
***Dockerデーモン [#be9eca12]
Dockerデーモンに[[Dockerイメージ>#vee01503]]の実行を要求すると、Dockerデーモンは、
-実行する[[Dockerイメージ>#vee01503]]の正しいバージョンを持っていることを確認する。
-持っていない場合、指定された[[Dockerレジストリ>#hff8c9d7]]から引き出す。
-Dockerデーモンに[[Dockerイメージ>#vee01503]]の実行を要求する。
-この実行では、構築・実行・[[Dockerコンテナ>#u4d4949f]]の配付を行う。
-この動作をカスタマイズするにはいくつかの方法がある。
--イメージを指定する際
--イメージ・プルポリシー
*インストール [#scdc282d]
**CentOS [#sa932048]
**Ubuntu [#sb89f322]
**[[Windowsから>https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Tools%20for%20Docker]] [#ff72b53b]
*利用 [#c4bc3de4]
**CentOS [#m2d151b3]
**Ubuntu [#xbfee1d5]
**[[Windowsから>https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Tools%20for%20Docker]] [#i9200678]
*参考 [#j992b74c]
**Docker Documentation [#nef96f68]
-Docker ドキュメント日本語化プロジェクト~
Docker-docs-ja 17.06.Beta ドキュメント~
http://docs.docker.jp/index.html
***Dockerfile [#n8067f04]
-Dockerfile reference~
https://docs.docker.com/engine/reference/builder/
***Compose file [#y7bdd83a]
-Compose file version 3 reference~
https://docs.docker.com/compose/compose-file/
**@IT [#w0642cbd]
-Tech Basics/Keyword:Docker~
http://www.atmarkit.co.jp/ait/articles/1407/14/news122.html
***いまさら聞けないDocker入門 [#t6eefae5]
http://www.atmarkit.co.jp/ait/series/1511/
-(1):アプリ開発者もインフラ管理者も知っておきたいDockerの基礎知識~
http://www.atmarkit.co.jp/ait/articles/1405/16/news032.html
-(2):ついに1.0がリリース! Dockerのインストールと主なコマンドの使い方~
http://www.atmarkit.co.jp/ait/articles/1406/10/news031.html
-(3):Dockerfileとdocker buildコマンドでDockerイメージの作成~
http://www.atmarkit.co.jp/ait/articles/1407/08/news031.html
-(終):Docker Hubの使い方とGitHubからのDockerイメージ自動ビルド~
http://www.atmarkit.co.jp/ait/articles/1408/26/news038.html
***超入門Docker [#md43f3b7]
http://www.atmarkit.co.jp/ait/series/5086/index.html
-第1回 Dockerとは~
http://www.atmarkit.co.jp/ait/articles/1701/30/news037.html
-第2回 Dockerを使ってみる~
http://www.atmarkit.co.jp/ait/articles/1701/31/news043.html
-第3回 Dockerコマンドの使い方~
http://www.atmarkit.co.jp/ait/articles/1702/01/news061.html
-最終回 Windowsプログラムを実行するWindowsコンテナ~
http://www.atmarkit.co.jp/ait/articles/1702/02/news039.html
※ この記事は、Windows寄りになっている。
***山市良のうぃんどうず日記 [#i9be6f03]
-(31:特別編)所要時間わずか10分で「Docker」を体験しよう――Azureで始めるDocker入門~
http://www.atmarkit.co.jp/ait/articles/1504/13/news020.html
**see the elephant [#xde9471a]
-dockerを触ってみる~
http://namu-r21.hatenablog.com/entry/2016/10/15/124009
-dockerが使うUnionFileSystemを僕なりに解釈した~
http://namu-r21.hatenablog.com/entry/2016/10/27/013006
-dockerのファイルシステムについて知る~
http://namu-r21.hatenablog.com/entry/2016/10/25/160147
**さくらのナレッジ [#s3864708]
-Dockerコンテナをクラウドサービス上で共有できる「Docker Hub」を使ってみる~
https://knowledge.sakura.ad.jp/2210/
--DockerとDocker Hubの操作と概念~
https://www.slideshare.net/zembutsu/docker-container-image-command-introduction-2017-03
**Qiita [#se48f3bb]
-Dockerの日本語ドキュメント~
https://qiita.com/maemori/items/dd162002fbdd53d5582a
-Dockerコンテナとイメージを簡易的に理解する~
https://qiita.com/horikeso/items/b9456a529444ff1ed547
***docker コマンド [#icfd04c2]
-Dockerコマンドメモ~
https://qiita.com/curseoff/items/a9e64ad01d673abb6866
-docker コマンド チートシート~
https://qiita.com/voluntas/items/68c1fd04dd3d507d4083
***docker-compose コマンド [#feeada98]
-docker-compose コマンドまとめ~
https://qiita.com/aild_arch_bfmv/items/d47caf37b79e855af95f
-Docker Compose - docker-compose.yml リファレンス~
https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa
***コンテナ内で操作 [#p3013626]
-Dockerコンテナ内で操作 attachとexecの違い~
https://qiita.com/RyoMa_0923/items/9b5d2c4a97205692a560
-Docker | docker コンテナの中で vim が使えない場合~
https://qiita.com/YumaInaura/items/3432cc3f8a8553e05a6e
-ツール類のインストール
--apt-get~
「are you root?」となる場合は、先頭にsodoを付与。
apt-get update
apt-get install XXX
--yum
yum install XXX
***Docker multi stage build [#gc400d8a]
-Docker multi stage buildで変わるDockerfileの常識~
https://qiita.com/minamijoyo/items/711704e85b45ff5d6405