Dockerのコンテナとは
Linuxのコンテナ技術を使ったもの
もともとサーバーは手動でインストールしていたし、同じサーバーを構築するのが難しかった
できることは実行したコマンドをメモしておくくらいだった
Dockerがあることでサーバーの情報をコード化することができた
メリット
・サーバーの情報がわかる
・誰でも同じサーバーが立ち上がる
・誰でもサーバーが立てられる
・テキストファイルなので共有しやすい
ホストマシンのカーネル(OSの中核部分でハードウェアとアプリケーションソフトうケアの間で仲介する役割)を利用し、プロセスやユーザなどを隔離することで、あたかも別のマシンが動いているかのように動かすことができる
ミドルウェアのインストールや各種環境設定をコード化して管理
コンテナってどんなもの
コンテナ型には仮想マシンやゲストOSはない
その代わりにコンテナがある
仮想化ソフトウェアとしてコンテナエンジンをインストールして、コンテナという容器を作る
Dockerでできること
1台のサーバー上に複数のアプリケーション実行環境(Dockerコンテナ)を作成・利用できる
アプリケーション実行環境(Dockerコンテナ)の他サーバーなどへの移転、他ユーザーとの共有※Dockerコンテナの移転や共有は複雑で手間のかかる操作を必要とせず、簡単に実行可能
Dockerコンテナでアプリケーションの開発環境を作成し、インターネット上で他エンジニアと簡単に共有できる
従来の仮想化では仮想マシンごとに1つのゲストOSをインストールして、あたかも1台の独立したサーバーのように利用していた
DockerではホストOSのカーネルを共有して利用することで、従来の仮想化と違いゲストOSを必要としない
その分だけDockerの動作は軽くなる
従来の仮想化では、仮想マシンはOSを起動する必要があった
→仮想マシンの作成から起動まで数分程度の時間がかかった
Dockerのコンテナ型仮想環境は、数秒で起動できる
DockerImageとは
Dockerコンテナの実行に必要なすべてのコンポーネント、ソフトウェア、ライブラリ、設定などを含むパッケージ
→複数の環境で同じ状態のコンテナを再現するために使用
Docker Fileとは
Dockerコンテナをビルドするためのテキストファイル
→コンテナをビルドするための設計書
Docker Imageをコード化したもの
読めばインフラ構造がわかる
自分の用途に合わせてカスタマイズもできる
同じDocker Fileからは必ず同じコンテナが起動する
Docker Composeとは
yamlファイルという設計図で複数のコンテナをまとめて管理できるツール
コマンド一つで複数の環境を立ち上げることができる
相対パスで書くことが多い
絶対パスで書くと、ユーザー名を変更したりする必要が出てくるからできるだけ相対パスで書く