1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

前回まで

getting startedを終わり(一部スキップ)次はwhat is nextのpageから基礎を固めることに。dockerとimageの概要、起動、確認方法とかを学んだ

what is Docker Compose

One best practice for containers that each container should do one thing and do it well.
やはり一つのコンテナは一つのことに集中するのがいいらしい。

With Docker Compose, you can define all of your containers and their configurations in a single YAML file
YAMLファイルなるものを使うとcontainersをまとめることができますと。

try it out
dockersamples/todo-list-appをダウンロード。解答。中身はこんな感じ1.PNG

yamlファイルの中身はこんな感じ1.5.PNG
imageとそれに付随するコマンドを上から書いていく感じかな。volumesはよくわかんないけど

docker compose up -d --buil
2.PNG
怒られる。windowsにおけるdokcer daemonはdocker desktopが起動していること?

docker desktopを実行し、コマンドを再実行→成功。
GUI上でtodo-list-app-mainだけ色が変わっている
3.PNG

この一覧の流れで、二つのimageがdocker hubからダウンロードされる→ネットワークが構築される→databaseをpersistするためのvolumeが作られる→二つのコンテナが適切なコンフィグで起動される ということをしたらしい

ぶっ壊す(tear it down)
docker compose down
todo-list-app-mainそのものが消えた4.PNG
ただしvolumeは残っているらしい。volumeってなんだ?と進めばわかるか

Understanding the image layers

container iamges are composed of layers
イメージはレイヤーで構成される。OSを構築するレイヤー。pythonをインストールするレイヤー。requirementsをinstallするレイヤーなど。こうすることで使いまわせるから便利だぞと。

tyr it out
create a base image

  1. コンテナの作成&起動 docker run -name=base-container -ti ubuntu
  2. nodeのinstall apt update && apt install -y nodejs
  3. nodeの動作確認 node -e 'console.log("Hello world!")'
  4. ここまでの変更をlayerとして保存する docker container commit -m 'add node' base-container node-base
    dockerないよと怒られる6.PNG
    コマンドプロンプトをもう一つ立ち上げて実行。成功7.PNG
  5. nodeが入っていることを証明する docker run node-base node -e "console.log('hello world again')"
  6. base-containerを削除する docker rm -f base-container
  7. 最終形。なぜかnode-baseがふたつある8.PNG

build an app image

  1. 作成したイメージをベースに新たなコンテナを定義?する docker run --name=app-container -ti node-base
  2. コンテナでアプリを作る echo 'console log("hello from an app")' > app.js
  3. 変更を新しいイメージとして保存する docker container commit -c "CMD node app.js" -m "Add app" app-container sample-app コンテナ起動時にapp.jsを実行する内容となっているらしい
  4. 動作確認 docker run sample-app
  5. docker desktopを確認。9.PNG
    imageがnode-baseのままなのがよくわかんない
  6. 消す docker rm -f app-container 消してもsample-appは残っている。現状があまり理解できない
    10.PNG

とりあえず今日はここまで

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?