概要的なところ
- データやプログラムをOSごと隔離できる仕組み
- docker engineでコンテナを作成、使用できる
- イメージ=コンテナの元
- Linux OSが必須、理由はLinux上で動かすものだから
- コンテナの中は空ではなく「Linux OS的なの」が入っている
- 元のもの=イメージ、イメージから作る実際に動いているもの=コンテナ
- 逆にコンテナからイメージを作ることもできる
- イメージは自分でつくることはない、Docker Hub(https://hub.docker.com/2ww2szxswx3)が提供してくれている
- 一つのコンテナに一つのアプリ
- 長く大事に使うのではなく、使ったら捨てるを繰り返すことが大事
- dockerをインストールしている物理的なマシンのディスクにマウントする
- コンテナのライフサイクル 作成ー>起動ー>停止ー>削除ー>作成
メリット
- 複数のコンテナに同じプログラムを入れることができるので、バージョンの影響がでない
- 通常であれば一つのサーバに一つのWEBサーバしか置けないけど、隔離することで複数置くことができる
- コンテナは持ち運ぶことができる
Dockerの基礎知識まとめ
- docker-compose up -d で起動
- docker-compose stop で停止
- コマンド基本形=docker コマンド (オプション) 対象(引数)
- バージョン確認 docker version
- pull、create、startを同時にできるのがrun
- docker container stop 停止
- docker container rm 削除
- コンテナを破棄するためには停止させる必要がある
- docker ps コンテナの一覧を表示できる
- docker image rm イメージ名 イメージの削除
- docker image ls イメージの一覧表示
- docker network create ネットワーク名 ネットワーク作成
- docker network rm ネットワーク名 ネットワーク削除
- docker cp コピー元パス コピー先のコンテナ名:コンテナ側パス
コンテナのイメージ化(2種類ある)
①commitコマンドで書き出す
docker commit コンテナ名 作成するイメージ名
②docketfileでイメージを作成する
Docker composeとは
- 構築に関わるコマンドの内容を1つの定義ファイルに書き込んで、一気に実行することができる
- 定義ファイル「YAML」を用意し、そのファイルを「up」したり、「down」したりする。
- dockerファイルはイメージをつくるもので、ネットワークやボリュームを作成できない。
- 定義ファイルは「docker-compose.yml」と決まっている
- 定義ファイルは一つのフォルダに一つのみ。
- 複数の定義ファイルを使いたい場合は、フォルダを複数用意する
Kubernetes(クーべネティス)とは
- コンテナのオーケストレーションツールのこと
- k8sとも書く
- オーケストレーションツールとは複数のコンテナを管理できるツールのこと
- 複数の物理的なマシンを使用し、1台のサーバに複数のコンテナを扱うことが前提
- その時に毎回docker comoseを叩くのは大変なのでその煩雑さを上手くやってくれるツールのこと