【保存版】Dockerで「helloーworld」を実行してみよう!(terminalに表示されるまでの仕組みの理解)
先日、BlockBaseの勉強会で学習したことを元に、Dockerで「hello-world」を実行してみたので、こちらに記します。
①学習の目的
Dockerで「hello-world」を実行することにより次のことを理解できます。
1.正しくインストールができているかの確認
2.teremial(コマンドプロンプト等)に表示されるまでの仕組み
②Docker内での「hello-world」の位置づけは?
公式ページを見てみましょう。
Docker Official Images
↑こちらを確認すると、「hello-world」はDockerの公式な「images」の一つとして定義されているのですね。
こちらの右の部分も見てみましょう。
Copy and paste to pull this image
「hello-world」の「images」を利用するにはこちらのコマンドを打てばいいのですね。
docker pull hello-world
これで、レジストリから「hello-world」の「images」を持ってくることができました。
このあたりについて、不明な場合には、こちらの記事もご確認ください。
③「hello-world」の実行
では、実際に実行してみましょう。
★Example Outputの部分★
$ docker run hello-world
↓ 結果はこのようになりました!
Hello from Docker!
This message shows that your installation appears to be working correctly.
⇒この「hello-world」を実行することで、インストールが適切になされていることを確認することができます。
④Dockerのterminalへ表示されるまでの仕組み
To generate this message, Docker took the following steps:
そして、ここがポイントです。このメッセージが表示されるまで、Docker内で何が起こっているのかを説明しています。
④-1 「Docker client」⇔「Docker deamon」
1. The Docker client contacted the Docker daemon.
①「Docker client」が「Docker deamon」にcontact(通信)する
④-2 「Docker deamon」⇔「Docker Hub」
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
②「Docker deamon」が「Docker Hub」から「hello-world」の「image」を持ってくる
④-3 「Docker deamon」の「Container」作成
3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
③「Docker deamon」が「image」から新しい「Container」を作る。なお、この「image」は実行ファイルを実行し、今のまさにこの部分を出力している。
★★★ちょっと雑談★★★
英語「executable」とは??
「executable」とは「executable file」の略で、「実行ファイル」を意味することが多く、拡張子「.exe」などのイメージです。(下のサイトが分かりやすかったです。)
https://wa3.i-3-i.info/word11896.html
★★★★★★★★★★★★
④-4 「Docker deamon」⇔「Docker client」
4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
④「Docker deamon」がこの③の出力を「Docker client」の「terminal(コマンドプロンプトなど)」に送っていく。
ここまでがDockerでコマンドプロンプトに表示されるまでの流れです。
最後に全体像です。
⑤ 「Ubuntu」とは
最後にこちらも見てみましょう。
To try something more ambitious, you can run an Ubuntu container with:
より挑戦を行いたいなら、次のコードで『Ubuntu』の「Container」を実行できます。
$ docker run -it ubuntu bash
『Ubuntu』ってなんでしょう。
ここからわかることとして
①Docker Official Images
→『Ubuntu』もDockerの公式「image」の一つなんですね。
②Ubuntu is a Debian-based Linux operating system based on free software.
フリーソフトをベースとした、『Debian』をベースにしたLinuxのOSなのですね。
本日はこちらで以上となります。
なお、BlockBaseについては、こちらです。ご興味のある方はぜひ!