Lesson 2
環境構築
Lesson 2
Chapter 1
Docker Desktopのインストール
Lesson2では、環境構築や設定の確認を行います。Dockerを使用するためには、Docker Desktopのインストールが必要になります。
Docker Desktopとは
Lesson1でも触れましたが、DockerはLinux上で動作するコンテナ仮想化技術の1つです。WindowsやMacで使用する場合は、Linux仮想マシンのセットアップをしなければなりません。
Docker Desktopの中心となる機能は、このLinux仮想マシン(LinuxKit VM)の提供です。本来必要となるホストOSの違いによる面倒な設定を全て行なってくれます。
Docker Desktopがなければ、そのような仮想マシンの用意からホストOSとコンテナ間でのファイルシステムやネットワークの連携など多くの環境構築作業が発生します。
さらに、Docker DesktopにはDockerでの開発に必要なツールが一通り含まれています。
Docker Desktopに含まれているもの
それぞれの詳細については割愛しますが、以下のものが含まれています。
- Docker Engine
- Docker CLI client
- Docker Buildx
- Exntensions
- Docker Compose
- Docker Content Trust
- Kubernets
- Credential Helper
Docker Desktopは基本的にはデフォルトの設定で正しく安全に動作されるように構成されており、インストールするだけで開発環境が整うようになっています。
注意事項
Docker Desktopは個人や教育目的の利用は無料ですが、商用利用(従業員が 251 人以上、または、年間収入が 1,000 万米ドル以上)では有料契約が必要になります。
Docker Desktopのインストール
Docker Desktop for Windowsのインストール要件
インストールに必要なシステム要件の詳細はこちらのWSL2バックエンドの項をご確認下さい。
まず、インストール前の準備として以下の2つの作業が必要になります。それぞれリンク先の手順を参考にして行なって下さい。
こちらが済んだ方は以下の手順でDocker Desktopをインストールしていきましょう。
まずは、公式サイトにアクセスします。①Download Docker Desktop Windowsになっていることを確認してインストーラーをダウンロードして下さい。

フォルダに以下のアイコンのインストーラーがあると思いますので、ダブルクリックで起動します。

以下の画面が起動します。インストール完了後にデスクトップにショートカットが必要な方は②Add shortcut to desktopにチェックを入れて下さい。

インストールが完了したので、③のボタンをクリックしてインストーラーを終了します。

デスクトップにショートカットを作成した方はそちらから、されていない方は④からDocker Desktopを検索して⑤起動します。

利用条件などを確認したら、⑥Acceptをクリックします。

Docker Desktopが起動します。最初の起動時は以下のような画面がでます。2分ほどのチュートリアルを行えますが、不要な方は⑦Skip tutorial、体験したい方は⑧Startをクリックして下さい。

最後に以下のダッシュボード画面が起動できればインストール完了です。

次のchapterでは設定の確認を行います。

Lesson 2
Chapter 2
Docker Desktopの設定を確認
このchapterでは設定の確認を行なっていきます。
①をクリックして設定画面を開きましょう。

Generalタブ
GeneralタブではDockerの起動やその他全般的な内容の設定を行います。いくつかピックアップして解説しますが、基本的にはデフォルトのままでも使用に問題はありません。

②Start Docker Desktop when you log inにチェックを入れると、パソコンの起動時に自動的にDocker Desktopを起動するようになります。
③Choose Theme for Docker DesktopはGUIの見た目を変更します。
④Send usage statisticsにチェックを入れると、利用統計情報(エラー報告や利用データ情報)の送信を自動的に行うようになります。
⑤Show weekly tipsにチェックを入れると、Docker Desktopの操作時にポップアップで操作説明を表示することがあります。有用な情報が見つかるかもしれませんが、不要であればチェックを外して下さい。
⑥Open Docker Dashboard at statupにチェックを入れると、Docker Desktop起動時にダッシュボードを自動的に開くようになります。ダッシュボードは開発時に頻繁に操作するものでもありませんので、タブに開かれるのが邪魔だと感じる人はオフにして下さい。
ダッシュボードが閉じた状態で再度開きたい場合は、⑦をクリックして、⑧のDockerアイコンをクリックすると再度起動します。

Docker Desktopの起動確認
ダッシュボード画面が開いていなくてもDocker Desktopが起動していれば、Dockerを使用できます。⑧のアイコンを右クリックして⑨Docker Desktoop is runningとなっていればDocker Desktopが起動しています。停止したい場合は⑩Quit Docker Desktopで終了させましょう。

Resourcesタブ
Resourcesタブでは、CPU ・メモリ・ディスク・プロキシ・ネットワークなどの設定を行えます。しかし、設定が可能な項目は対象OSや同じWindowsでもモードの違いで異なります。
以下のMac版でのResources画面の設定項目をご覧下さい。

Advanced項目でホストマシン上で利用可能なCPUのプロセッサ数やメモリの容量などを設定できるようになっています。
しかし、このLessonではWindowsのWSL2モードでDockerを使用していますので以下のような画面になっていると思います。

WSL2モードではリソースの制限はWindows側で行うようになっているため、wslconfigファイルによって設定を行なって下さいとあります。
以下で変更手順を例として紹介しますが、実際に行う必要はありません。
wslconfigの設定
リソースの変更をする前に現状の設定を見ておきましょう。
PowerShellを立ち上げて⑪docker info
コマンドを実行すると⑫CPUコア数8、メモリ容量約4GBになっていることが確認できます。

それではwslconfigファイルを作成・編集して設定を行います。
wslconfig ファイルは、C:\Users\ユーザ名\.wslconfig
にあります。ない方は作成し以下のようにします。
.wslconfig
[wsl2]
memory=2GB
processors=4
PCを再起動してDocker Desktopを立ち上げます。再度docker info
コマンドを実行してみましょう。
⑬CPUコア数4、メモリ容量約2GBに設定が変更できました。

例ではCPUとメモリの変更を行いましたが、その他のwslconfigの細かな設定を行う場合はこちらをご覧ください。
設定変更を行うケース
Docker Desktop使用時にファンがうるさくなるときは、CPUの負担が大きくなっているか、wslのメモリ割り当てが多くPC側でメモリ不足になりスワップが発生していることが原因かもしれません。メモリやCPUコア数の設定を変更すると改善される場合があります。

Lesson 2
Chapter 3
コンテナの実行
インストールと設定が完了したところで実際にdockerを使用してコンテナを実行してみましょう。
docker runコマンド
チュートリアルではおなじみのHello WorldをDockerの世界でも体験してみます。
PowerShellを立ち上げてdocker run hello-world
を実行してみて下さい。

①Hello from Docker!
が出力されました
コマンドの実行により、②Dockerが行ったことが書かれていますので見ていきましょう。
docker run hello-worldによってDockerが行ったこと
① Docker clientがDocker deamonに命令を出します
Docker clientというのは、docker run
や先ほど設定の確認のときに実行したdocker info
などのdocker xxx
という形で実行したプロセスのことです。
Docker daemonは実行ステップ全ての主語になっている通り、Dockerの本体と呼べるものです。普段は私たちがDockerを使用するときはDocker CLI clientを通してDocker daemonを実行していることになります。
② 命令を受けたDocker daemonがhello-worldという名前のイメージをDocker Hubから取得します
Docker Hubについては次のLesson3で学習します。ここでは、いろいろなイメージが保存されている場所だと考えてください。
③ Docker daemonが取得したイメージから新しいコンテナを作成し実行します
取得したイメージを元にコンテナの作成を作成し、実行されます。
④ Docker daemonがコンテナの実行によって得られた出力をPowerShellに表示します
"hello-wolrd"イメージによって作成されたコンテナは、メッセージの出力を行うだけのものです。メッセージを出力し、役目を果たしたらコンテナが終了します。
Docker Desktopダッシュボード画面
それでは、docker run hello-world
コマンドの実行によって取得されたイメージと作成されたコンテナをDocker Desktopのダッシュボード画面で確認してみましょう。

③Imagesをクリックすると、イメージの一覧が表示されます。④hello-worldという名前のイメージが取得されていることが確認できます。

⑤Containersをクリックすると、コンテナの一覧が表示されます。⑥hello-worldを元に作成されたコンテナがあることを確認できます。コンテナ名は「frosty_swanson」となっていますが、これはコンテナ作成時にDockerによってランダムに割り当てられた名前になります。
まとめ
Lesson2ではDocker Desktopのインストールから試しに簡単なコマンドの実行まで行いました。
docker run hello-world
ではDocker clientやDocker daemonが登場しましたが、これらが実行できたのはDocker DesktopにDocker CLI clientやDocker Engine(Docker daemon)が含まれているからなのです。
Docker Desktopのインストールによって、これらの開発に必要なツールが整ったところで次のLessonに進みましょう。
