【Docker】Docker for Windowsの環境をセットアップしてDockerを試す

はじめに

こんにちは、がんがんです。
本記事は鹿児島大学 Advent Calender 2019 7日目掲載記事となります。

中間発表も無事に終了しました。終了してすぐに研究室のインフラおじさんになることになりました。
インフラ構築としてDockerの使用をメインで考えています。
そこで、まずはDocker for Windowsの環境を自身のPCにセットアップしていきます。

以前のDocker記事はこちらになります。
【WSL】Docker on Ubuntu on WSL環境を構築したはなし - ganganの技術備忘録
【Docker】Ubuntu 18.04でDockerのインストールをやってみる - ganganの技術備忘録

目的

  • Docker for Windowsのセットアップ
  • Dockerの使い方を再確認

公式サイト

docs.docker.com

STEP1 Hyper-Vの有効化

DockerではHyper-Vを使用します。コントロールパネル -> プログラム -> Windowsの機能の有効化または無効化より有効化にチェックを入れておきます。有効にするためには再起動が必須です。

STEP2 Docker for Windowsのインストール

公式サイトより.exeファイルをインストールします。サイトのリンクは以下の通りです。
Install Docker Desktop on Windows | Docker Documentation

ダウンロードを実行すると以下のようにログインを求められます。初めての時は手順に従ってアカウントの作成→ログインを行います。
f:id:gangannikki:20191207192830j:plain

STEP3 cmdからDockerを実行

コマンドプロンプトまたはPowerShellを立ち上げて、Dockerがきちんと動作しているかを確かめてみます。
まずはDocker for Windowsのアプリを立ち上げ、Dockerをrunning状態にします。画像のようにかわいいクジラさんが現れてくれます。
f:id:gangannikki:20191207161857p:plain

次に、端末を起動させます。今回はGit Bashで実行してみます。

$ docker --version
Docker version 19.03.5, build 633a0ea

無事にバージョンを表示出来ました。

次に、hello-worldを試してみます。実行すると、pull → create → start → stopの順で動作が実行されます。

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pulling fs layer
1b930d010525: Verifying Checksum
1b930d010525: Download complete
1b930d010525: Pull complete
Digest: sha256:4df8ca8a7e309c256d60d7971ea14c27672fc0d10c5f303856d7bc48f8cc17ff
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Dockerに関するコマンドまとめ

自分のメモもかねて書いておきます。

docker --version

Dockerのバージョンを確認するコマンド。

$ docker --version

docker run

Dockerの実行コマンド。もしローカルにイメージがない場合はDocker Hubよるpullしてきてくれます。
docker pulldocker createdocker startが一括で行えるコマンドです。

$ docker run [name]

docker pull

Docker Hubよりimageをpullしてくるコマンド。

$ docker pull [images name]

docker create

pullしてきたイメージを使ってコンテナの生成を行うコマンド。
-itで対話モード、-dでバックエンドモードになります。

$ docker create -it [image name]

docker images

ローカルにどんなイメージがあるかを確認するコマンド。
実行例は以下の通りです。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
node                latest              760e12e87878        11 days ago         934MB
hello-world         latest              fce289e99eb9        11 months ago       1.84kB

docker ps -a(docker container ls -a)

コンテナの実行状況を確認するコマンド。-aを付けることで停止しているものもすべて(all)見ることができます。

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
ce4564b5d220        hello-world         "/hello"                 2 minutes ago       Exited (0) 2 minutes ago                       strange_cerf

おわりに

今回はDocker for Windowsを試してみました。これでインフラおじさんへのレベルが一歩上昇しました。
Dockerは意外と簡単に試すことができ、環境構築で死ぬことがなくなるのでこれからは積極的に使っていきたいです。

また、わかばちゃんシリーズにはとてもお世話になりまくったので感謝です。最後に告知しておきます。