無償の「Docker for Windows」で手軽にLinuxコンテナを利用するWindows管理者のためのDocker入門(2/2 ページ)

» 2017年04月28日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
前のページへ 1|2       

Docker for Windowsを使うには?

 Dockerは基本的にはCUIで操作/管理するツールである。後述するようにGUIの管理ツールも存在するけれど、「docker.exe」というコマンドラインコマンドにパラメーターを付けて操作するのが標準といえる。

 Docker for Windowsをインストールすると、「C:\Program Files\Docker」フォルダ以下にDocker関係のツールがインストールされ、PATH環境変数もセットされる。そのため、インストール後にコマンドプロンプトやPowerShellコンソールを開けば、すぐにdockerコマンドを実行できる。

 Dockerの基礎やdockerコマンドの使い方についてはここでは触れないので、次の連載記事などを参照していただきたい。

 以下では、最小限の動作確認や基本的な操作・設定、そしてGUIツールに絞って紹介しておく。

Docker for Windowsの動作確認

 インストールが終わったら、まずはコマンドプロンプトかPowerShellコンソールを開いて、単に「docker」と入力してみる(dockerコマンドを使うだけなら、管理者権限は不要)。これでヘルプメッセージが表示されればインストールは正しく行われている。

 その次は「docker version」や「docker info」コマンドなどを実行してみる。

C:\>docker ……dockerコマンドが実行できるか確認
Usage: docker [OPTIONS] COMMAND [arg...]
       docker [ --help | -v | --version ]

A self-sufficient runtime for containers.

Options:

  --config=%USERPROFILE%\.docker              Location of client config files
  -D, --debug                                 Enable debug mode
  -H, --host=[]                               Daemon socket(s) to connect to
  -h, --help                                  Print usage
……(中略)……
Run 'docker COMMAND --help' for more information on a command.

C:\>
C:\>docker version ……バージョンのチェック
Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:15:28 2016
 OS/Arch:      windows/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:15:28 2016
 OS/Arch:      linux/amd64

C:\>docker info ……状態の確認
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 0
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.15-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.952 GiB
Name: moby
……(中略)……
Insecure Registries:
 127.0.0.0/8

C:\>



コンテナのロードと実行

 以上の動作が確認できたら、次は「docker run hello-world」を実行してみる。「docker run」はコンテナを実行するコマンド、「hello-world」はコンテナの名前である。これを実行すると、hello-worldというイメージがインターネット(Dockerレジストリ)から自動的にダウンロードされ、ローカルにイメージとして保存される。そしてそのイメージを使ってコンテナが作成され、実行される。

C:\>docker run hello-world ……コンテナの起動
Unable to find image 'hello-world:latest' locally ……指定されたコンテナイメージがローカルに見つからない(まだダウンロードされていない)というメッセージ
latest: Pulling from library/hello-world ……インターネット(Dockerレジストリ)からダウンロードしてくる

c04b14da8d14: Pull complete ……ダウンロードしたイメージの情報
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest

Hello from Docker! ……ここから下は「hello-world」コンテナの出力。このコンテナは、このようなメッセージを出力するだけの、動作確認用のコンテナ。これが表示されているということは、イメージのダウンロードやコンテナの作成、起動が正しく動作しているということ
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.
 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 ……次はこれを実行してみると、Ubuntuコンテナとbashの動作確認ができる

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

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

C:\>



 これが動作したら、次は上の出力中にあるように、「docker run -it ubuntu bash」を実行してみる。ubuntuとbashシェルが起動するはずなので、bashでさまざまなコマンドを実行してみよう。最後は[Ctrl]+[D]やexitコマンドで終了できる。

 一度実行したコンテナはローカルに残っているので、次回は素早く起動できる。プロセスの状態やイメージの状態は「docker ps」や「docker images」コマンドで確認できる。

C:\>docker ps ……実行中のコンテナの一覧を表示させてみる
CONTAINER ID  IMAGE        COMMAND        CREATED        STATUS        PORTS       NAMES
↑……全て実行が終了しているので、何も表示されない
C:\>docker ps -a ……実行中でないコンテナも表示させてみる
CONTAINER ID  IMAGE        COMMAND        CREATED        STATUS        PORTS       NAMES
55cc8b868037  hello-world  "/hello"       4 minutes ago  Exited (0) 3 minutes ago  tiny_jones ……hello-worldはすでにExited(終了した)状態

C:\>docker images ……イメージの一覧を確認してみる(イメージをロードしたものがコンテナ)
REPOSITORY    TAG          IMAGE ID       CREATED        SIZE
hello-world   latest       c54a2cc56cbb   8 weeks ago    1.848 kB ……イメージのIDとサイズなどの情報

C:\>



 まだまだDockerには多くのコマンドがあるが、これ以上の使い方については、前掲の連載「いまさら聞けないDocker入門」やDockerサイトのドキュメントページなどを参照していただきたい。

「Docker for Windows」アプリを使う

 Docker for Windowsをインストールすると、Windows 10の[スタート]メニューに[Docker]−[Docker for Windows]というツールがインストールされ、さらにタスクバーの通知領域に[Docker for Windows]のアイコンが表示される。このアイコンからは、Dockerの幾つかの設定を変更することができる。

Docker for Windowsアイコン Docker for Windowsアイコン
Windows向けらしく、タスクトレイにコンテナが動作中かどうかを示すアイコンが表示されている。これを右クリックするとメニューが表示される。
  (1)これがDocker for Windowsを表す、鯨のアイコン。
  (2)更新のチェック。
  (3)Docker for Windowsの詳細設定。
  (4)GUIの管理ツールである「Kitematic」(後述)の起動。

 [Setting]を選択すると、次のような設定を変更できる。

Docker for Windowsの設定画面 Docker for Windowsの設定画面
ここにある設定項目は、CUIでも設定したり、テキストで編集したりできるが、WindowsユーザーにはGUIの方が便利だろう。設定を変更すると、このツールによって仮想マシンの再起動や再構成などが自動的に行われるので、Hyper-Vマネージャで仮想マシンを直接操作(再起動など)しないようにする。
  (1)全般設定。サインイン時にDockerを自動的に起動するかどうかなどを設定できる。
  (2)共有設定。コンテナとローカルのPCのリソース(フォルダ)の一部を共有して、データを相互に受け渡しできるようにする。
  (3)仮想マシンのCPU数やメモリサイズの設定。
  (4)ネットワーク設定。コンテナ側のネットワークアドレスを設定できる。
  (5)Dockerがイメージをpullする際に使用するProxyサーバの指定。
  (6)Docker Daemon(Dockerサービス)の設定。
  (7)フィードバックの送信。
  (8)リセット。設定を全て初期化して、最初の状態に戻すことができる。
  (9)Dockerのサービスが稼働中かどうかのインジケーター。

「Kitematic」によるコンテナの管理

 Dockerは基本的にはCUIだけで操作するツールであるが、上のタスクトレイのアイコンを右クリックして[Open Kitematic]を選択すると、コンテナを管理するGUIのツール「Kitematic(カイトマチック)」を利用できる。

 ただしKitematicはデフォルトではインストールされておらず、最初にこのメニューを起動すると、Kitematicのダウンロードを促す画面が表示される。その画面中にある[Download]ボタンを押すと最新のKitematicパッケージ(ZIPファイル)がダウンロードできる。その内容を展開後、指示に従って「C:\Program Files\Docker\Kitematic」フォルダを作成して、その中へコピーする。すると以後は[Open Kitematic]メニューからKitematicツールを起動できるようになる。

 Kitematicでは、ローカルにインストールされているコンテナの管理や、新しいイメージの検索、ダウンロード、ログの表示などができる。コンテナによっては、シェルを起動してコンソールからインタラクティブに使ったり、Webブラウザを起動して出力をブラウザで閲覧したりできる。

DockerをGUIで管理するKitematicツール DockerをGUIで管理するKitematicツール
DockerをGUIで簡単に管理できるようにしたのがこのKitematicツール。CUIの全ての操作を代替できるわけではないが、Windowsに慣れたユーザーには便利かもしれない。
  (1)ローカルのコンテナの一覧(実行中だけでなく、実行が終了したコンテナも一覧表示されている)。
  (2)新しいイメージを検索する。
  (3)[CREATE]をクリックするとイメージが自動的にダウンロードされる。
  (4)ローカルのイメージの一覧を表示させるにはこれをクリックする。

 Kitematicを使わなくても、dockerコマンドで全て操作できるのだが、細かいコマンドを覚えるのが面倒だったり、Dockerにまだあまり慣れていないならKitematicは便利だろう。


 今後のWindows Server 2016でもコンテナ技術がサポートされるなど(ただしLinuxコンテナではなく、Windows ServerコンテナやHyper-Vコンテナがサポートされる)、軽量なコンテナ技術を使ったアプリケーションの仮想化や運用は、仮想マシンやクラウドと並ぶ、最重要技術の1つとなりつつある。Dockerの重要性は今後ますます高まるだろうから、開発や運用に携わることがあるなら、ぜひ導入・体験しておきたい。

■更新履歴

【2017/04/28】ダウンロード情報などを更新しました。

【2016/09/01】初版公開。


前のページへ 1|2       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。