前回まで
公式のdocumentatinのgetting startedのDevelop with containersまで完了。コンテナ?内に含まれる、java/javascriptなどのファイルを編集してtodoアプリをカスタマイズ。
next
'build and push your first image'とのこと。docker accountにサインインしてimage repositoryつくって、imageをpushするとのことだがアカウント系の作成は慎重に行いたいし、疲れるのでいったんスキップ
what's next
であるので、今日からは
https://docs.docker.com/guides/getting-started/whats-next/
を一通り眺めて基礎を固めていく
What is a container?
dockerのup?とrunnning?の確認
docker run -d -p 8080:80 docker/welcome-to-docker
docker ps
より複雑なprojectをやるときは、frontedn, backend, databaseそれぞれ別々にコンテナを定義しrunしたらとのこと
docker run
-d: コンテナをバックグラウンドで実行し、IDを表示
-p: コンテナのポートをホスト側に公開
コンテナは明示的に止めるまで動き続ける。ので、docker stopコマンドで止める必要がある
docker psでコンテナのIDを確認し、docker stopの引数に与える
additional resources
https://docs.docker.com/engine/reference/run/
https://www.docker.com/resources/what-container/?_gl=1*1bunrzf*_gcl_au*MjEzOTk3ODMyMi4xNzE4Mjg3MDM2*_ga*MTc3OTg4OTUxOC4xNzE4Mjg3MDM3*_ga_XJWPQMJYHQ*MTcxODQzNzg4NC4zLjEuMTcxODQzOTE4Ni42MC4wLjA.
内容がボリューミーで難しそうなので後回し
what is as image?
A container image is a standardized package that includes all of files, binaries, libraries, and configurations to run a container
例えばpostgreSQLはデータベースのバイナリとコンフィグファイルとdependenciesがある。python web appにはpython runtimeとapp codeとdependenciesがある。
二つの原則(principles)
- imageはimuutableで編集はできない。(on topにchangesをadd?することはできる)
- imageはlayersによりcomposeされる
on topにchangeをaddするとは、例えばpython imageから初めてその上にinstall app dependenciesするlayerを加えたり、コードを加えることを意味する
自分のPCで利用可能なdockerのimageの確認
docker image ls
所感
imageは設計図。containerは設計図を基に作り上げた何か。
imageはlayerで構成される。layer1 -> install os, layer2 -> install python みたいな?
大枠はつかめたが、todo-appの構成だけがわからん。
複数のコンテナをまとめた何かを定義できる感じかな?dockerコマンドにもimageコマンドにも'getting started todo app main'はでてこなかった。また別の概念なんだろう。進めていけばわかるか。今日はここまで