はじめに
恥ずかしながら、未だに Docker を触ったことがありません。
そこで、Dcoker 初心者の私が Docker を Mac にインストールして、Hello World をやってみるところまでをメモ書きとして残しておきます。
目次
まずは仮装化技術から
通常、Mac(もしくは Windowsなど)を使用しているけど、Linux 関連の開発をしたいなぁ、なんてことがよくあります。
このような場合は、自分が使用している OS(Mac や Windows など ) の上で別の OS を動かすとなると、VMware や VirtualBox、Parallels といった仮装化ソフトウェアをインストールして、その上に必要な OS をインストールすることになります。
このような仮装化をホスト型仮装化と呼びます。
ホスト型仮装化は、手軽にサーバーを仮装化できるというメリットがありますが、ゲスト OS を動かすにためにホスト OS も動かす必要があるため処理速度が出にくいというデメリットがあります。
ホスト型仮装化のイメージを以下に示します。
ホスト型仮装化は処理速度が上がらないため、ハイパーバイザー型という手法を取る場合もあります。
ハイパーバイザー型は、ホスト OS は不要です。その代わり、ハードウェア上にハイパーバイザーと呼ばれる仮装化ソフトウェアをインストールする必要があります。
あとはハイパーバイザーの上に必要な OS(ゲスト OS)をインストールして使用します。
ホスト OS が不要な分、処理速度を出すことができますが、ハイパーバイザーを動作させることができる、専用の物理マシンが必要となるというデメリットがあります。
ハイパーバイザー型仮装化のイメージを以下に示します。
Dockerとは?
では Docker とは仮装化型ホストとハイパーバイザー型仮装化とは何が違うのか?
Docker はコンテナ型仮装化に分類されます。コンテナ型仮装化は、ゲスト OS を起動することなく、ゲスト OS 用のアプリを起動させるというものです。
具体的には、仮想化ソフトに相当するコンテナエンジン上で、アプリケーション起動に必要なライブラリ等を含めたコンテナを動作させます。
ホスト型仮装化もハイパーバイザー型仮装化もゲストOSが必要ですが、コンテナ型仮装化ではゲストOSは不要という特徴があります。
これにより、ゲストOSを動かすためのリソース(メモリやCPUなど)を余分に使うことはありません。また、ゲストOSを使用する訳ではないので起動が早いという特徴があります。
さらに、Dockerエンジンを持つ環境であれば基本的にどこでも動かすことができるので、環境構築が早いというメリットがあります。
以下に、Docker でのコンテナ型仮装化のイメージを示します。
Docker をインストールしてみる
Docker の特徴を理解したところで、インストールを行います。
Docker をダウンロードするには、アカウントを作成する必要があります。Docker のサイト(https://www.docker.com/)にアクセスしたら右上の Sign In のリンクをクリックします。
以下の画面が表示されるので、アカウントを持っている場合は ユーザー名とパスワードを入力して「Sign In」をクリックします。アカウントを持っていない場合は、右下の 「Create Acount」 をクリックしてアカウントを作成します。
以下のようにアカウント作成に必要な情報は少ないので、これを機会に作成しましょう。
アカウントを作成してサインインすると「Download and Take a Tutorial」の画面に移動しますので、「Get started with Docker Desktop」をクリックします。
ダウンロードページに移動しますので、「Download Docker Desktop for Mac」をクリックしてダウンロードします(Windows の場合は Download Docker Desktop for Windows)。
最後にダウンロードした Docker.dmg をダブルクリックして Docker.app を Applications フォルダにドラッグ&ドロップすればインストール完了です。
Docker を起動すると、以下のような画面が表示されます。登録した ID とパスワードを入力して [Log In]ボタンをクリックします。
ログインをすると docker desktop はメニューバーに常駐となります。
Docker コマンドを使用してみる
Docker のインストールが終わったので、実際にコマンド叩いてみたいと思います。
Docker インストール後はターミナルを起動して、コマンドを実行することができます。
バージョンの確認
バージョンを確認するには、以下のコマンドを実行します。
docker --version
コマンドを実行すると、以下のようにバージョンが表示されます。
Dockerイメージを確認する
Docker のコンテナは、Docker Hub と呼ばれる場所から取得した Dockerのイメージを元に起動します。
Docker に入っているイメージを確認するには以下のコマンドを使用します。
docker images
コマンドを実行すると、Docker イメージの一覧を確認することができます。
何も入っていない場合は、以下のようにヘッダーのみが表示されます。
Hello Worldしてみる
最後に、以下のコマンドを実行して hello-world というイメージを取得してコンテナを起動してみましょう。
docker run hello-world
実行すると以下のようになります。
① は Docker の run というコマンドで hello-world を実行しています。
② 初めて実行する時は、hello-world のイメージがありませんので、「Unable to find image 〜」というメッセージが表示されます。
③ 最新の hello-world のイメージを取得しに行きます。
④ 取得が完了したというメッセージが表示されます。
⑤ hello-world イメージが実行されます。
さて、hello-world のイメージを取得して実行することができましたので、再度イメージ一覧を表示してみましょう。
先ほど同様に以下のコマンドを実行します。
docker images
hello-world のイメージがインストールされていることがわかります。
REPOITORY はイメージ名、TAG にはそのイメージに付いているタグ名、IMAGE ID はイメージに付けられているユニークなID、CREATED はそのイメージが作成された日、SIZE はイメージのサイズを表しています。
Mac へのDocker のインストールから簡単な操作について覚えることができたので、次回は Nginxを入れて webページの表示にチャレンジします。
コメント