こんにちは!
Docker!
#目次
1.iamgeとコンテナの違い
#1.imageとコンテナの違い
imageとは
・コンテナを作るためのタネみたいなもの
コンテナとは
・imageを元に生成される仮想環境の実行部分
・アプリケーションを管理するプログラムが組み込まれてる
#2.DockerHubでimageでの見方
下記の画像が、DockerHubで実際に検索した際に出てくるDockerfileです。
①〜③で書いてるように、複数Dokcerfileがありますよね??
それについて解説していきます!
###画像下線の1.18.0/Stable/1.18 と3種類について
・これらは検索したimageのversionを示しています。
1.18.0のDockerFileを選んでも良いし、stableのDockerFileを選んでも良いということです!
(3番目もね!)
###1.18.0のそれぞれの意味
1
.18.0
・Major Versionと言われて、これが変わるとガラッと機能が変わる
1.18
.0
・Minor Versionと言われて、後方互換があり、便利な機能や記法が変わったりする
1.18.0
・Revision Versionと言われて、数値が上がるにつれて、バグの対応をしてくれる
###stableの意味
安定版だから、変化することがない。
###1.18の意味
・Major VersionとMinor Versionについては①と同じ
・Revision Versionが記載されていないので、改善されたバグは更新されない
###例えば
・1.18.0
1.18.0を選ぶと、version1.18.0のイメージしか使えないよね??
もし仮にバグが見つかったとしても、変更できなくて、DockerHubから違うversion(最新版とか)を新しく
取得しなくてはいけない。
・1.18
1.18を選ぶと、Revision Version部のみ記述がないので
DockerHub側が1.18のバグを見つけて更新/改善してくれた時に、
自動的にバグ改善したversionを認識して取得してくれる(表現あってるか不明)
例えば
2021/01/01
DockerHub上のnginxイメージが
1.18.0 stable 1.18
とあるとする。
2日後にnginxイメージ1.18.0でバグが見つかって更新されました
2021/01/03
DockerHub上のnginxイメージ
1.18.1 stable 1.18
というふうに変わっていく
ここで、2021/01/01の1.18.0を選んでると
01/03に更新された1.18.1versionを使えずバグは残り続ける。
1.18を選んでると、自動的にRevision Versionが更新され続けていく
###赤線部Perl/Alpineについて
perl
・どのOSで開くか(下記の画像参考に)
-alpine
・軽量化されたパック(必要最低限のファイルしかない)
・都度カスタマイズする必要がある。
#3.Docker-composeとは
・複数のコンテナで構成されるアプリケーションについて、
Dockerイメージのビルドや各コンテナの起動・停止などをより簡単に行えるようにするツールです。
Dockerイメージのビルドとは
・イメージに対して自分で
docker-composer.yml上にカスタマイズして、自分独自のイメージを作成すること
docker-compose.ymlとは
・複数のコンテナの定義をymlファイルに書き、それを利用してDockerビルドやコンテナ起動をすることで、
簡単なコマンドで複数のコンテナを管理できるようになります。
#4.docker-compose.ymlの書き方
yamlの書き方のversion
version: "3.7" [ymlのversion
services: [serviceというコンテナを管理する
nginx: [nginxの名前は何でも良いが、アプリ名を書くのがベター
build: ./nginx [Dockerfileを使ってimageをカスタマイズする
ports: [右の80はローカル側のポート:左はDocker側のポート
- "80:80" [左のポート番号は、落としたいDockerFile内にポート番号が書かれてる(**画像1**)
volumes: [localとコンテナ内を共通化する
- ./infra/nginx/default.conf:/etc/nginx/conf.d/default.conf [ホストdefault.confを同期