Windows版Dockerの使い方

スポンサーリンク
IT
スポンサーリンク

Windows版Dockerの使い方

Dockerとは

Dockerとは仮想化技術の一つです。個人レベルだと次の二種類がメインでしょうか。

  1. コンピュータ本体を仮想化するハイパーバイザー型
  2. ソフトウェアを仮想化するコンテナ型

1のハイパーバイザー型では、MicrosoftのHyper-VやOracleのVirtualBoxなどが有名です。Hyper-VはWindows10に標準でついてくるので、私はよく遊んでます。記事にもしていますのでよろしければ御覧ください。

今回は2のコンテナ型の代表格であるDockerを使ってLinuxのUbuntuを動かしてみます。

レイヤー構成はこのようなイメージです。Windows10とLinuxのUbuntuはどちらもOSなので、同時に動かすことはできません。そのため、Dockerというコンテナ管理システムをWindows10にインストールして、そのDockerの上の一つのコンテナという形でUbuntuを動かします。

厳密にはDockerとWindows10の間にHyper-Vというハイパーバイザーがありますが、盲目的に利用しているので図には書いていません。

なにができるか

今回はお試しでUbuntuをコンテナで動かしますが、このコンテナでいろいろなものが動かせます。Webサーバ(Apache、nginx等)や、DBサーバ(MySQL、PostgreSQL等)などもコンテナ上で動かすことができます。

Ubuntuは仕方ないけど、WebサーバやDBサーバはWindows10にインストールすれば動くけど、Dockerのコンテナ上で動かすのはなぜ?

ばったん
ばったん

Dockerコンテナ上に構築するメリットは、インストール先の環境に依存しないため、Dockerさえあればどの環境でもコンテナは同じように動かせるので乗せ換えたら動かなくなったというトラブルを回避できるよ。

乗せ換えとかしないからあまりメリットを感じないなー

ばったん
ばったん

1つのパソコンで複数のバージョンを同時に動かすこともできるよ。例えば、今は最新バージョンを使っているけど、古いバージョンだとどう動くのか確認したい、という場合に、古いバージョンを入れ直す必要はなく、追加で古いバージョンのコンテナを作って動かすことができるので、すぐに検証ができるんだ。

インストール方法

Docker公式サイトからダウンロード

Windows版Dockerの本体は、公式サイトからダウンロードします。

Install Docker Desktop on Windows
How to install Docker Desktop for Windows

ページが表示されたら、Docker Hubから取得します。

Get Dockerをクリックします。

Dockerのインストールファイルは1GBぐらいありますので、ダウンロードにちょっと時間がかかります。ダウンロードが終わったら、Docker Desktop Installer.exeを起動します。

チェックボックスはデフォルトでOKです。

  • Enable required Windows Features … 自動でWindowsのHyper-Vを有効化
  • Add shortcut to desktop … デスクトップにアイコンを作成
  • Use Windows Containers instead of Linux containers … Windowsをコンテナ化する
ばったん
ばったん

最近は自動でHyper-Vを有効化してくれるよ。便利になった!

インストール完了したら、コンピュータを再起動します。

Docker 起動

パソコンの起動が完了すると、このような通知が表示されて、自動でDockerが起動します。

Dockerはステータスバーの中にいます。クジラのマークがDockerです。コンテナがピコピコ動いている時は、Docker起動中です。動きが止まったらDocker起動完了です。

初回起動時は、Welcome画面が開いて、なにやらログインを勧められますが、右上の✕ボタンを押してスルー可能です。

Docker本体はどうやってLinuxを動かしている??

ざっくり言ってしまうと、DockerはLinuxのネームスペースというカーネルの機能を使っているためLinuxが必要です。そのため、Windows上で動かすにはHyper-V上に軽量Linux仮想マシンを作ってその上でDockerが動くようにしています。

Hyper-Vマネージャーで確認するとこの通り。だから、Hyper-Vが必要なんですね。

インストールはこれで完了です。

動作確認

Docker本体のインストールが完了しましたので、dockerコマンドが使えるか確認してみます。バージョン番号が表示されれば正常にインストールできています。

> docker -v
Docker version 19.03.5, build 633a0ea
スポンサーリンク

Windows上でLinuxのシェルを起動する

次は実際にDockerコンテナをダウンロードしてきて、動かしてみます。Windows上でLinuxを動かしてみましょう。一昔前ではWindows上でLinuxを動かすなんて不可能でしたが、Dockerのおかげで簡単にできてしまうのです。

Ubuntu公式Dockerイメージの入手と起動

本当は段階を追ってイメージを入手して起動という流れなのですが、Dockerは気が利くので、これを実行したい!って言えば、そこまでに必要なものを自動で準備してくれるのです。

例えば、次のDockerコマンドを実行します。

> docker run -it ubuntu /bin/bash

すると、このような感じで、Dockerが起動し、ubuntuのコンテナイメージをダウンロードした後、ubuntnコンテナを起動してBashを起動します。

Bashが起動すると、そこはもうLinuxの世界です。試しにnameコマンドを実行すると、OSがLinuxであることが確認できましたし、lsコマンドでファイル一覧も確認できました。

最後はexitコマンドでBashを終了させると、コンテナは終了して元のWindowsのコマンドプロンプトに戻ります。

ばったん
ばったん

これでWindowsを使っていても、すぐにLinuxのBashが起動できるんだ。VMだと重いし、Cygwinは本物とはちょっと違うので、この軽さで本物が動かせるDockerはスゴイ!!

Windowsとディスクを共有

コンテナの中と外を接続するには、単純にコンテナを起動するだけでは無理で、ちょっと設定を追加するがあります。

この辺の設定を毎回dockerコマンドで実行すると面倒なので、docker-composeというものを使います。dockerでコンテナを起動する時に必要な設定を定義しておき、それに基づいて毎回自動でその設定を適用して起動してくれるスグレモノです。ここからがdockerの真骨頂です。

docker-compose

これは次の記事で書きたいと思います。

スポンサーリンク

まとめ

こんな方にはDockerオススメ

Windows10上でLinuxやその他いろいろなソフトが動かせます。こんなことをやりたい方にはオススメです。

  • Windows使っているけど、手元にLinuxが動く環境を持っておきたい。
  • DOSやPowerShellは使いにくいから、Linuxのシェルが使いたい。
  • 今使っているバージョンのソフトはそのままに、別のバージョンを動かしたい。
  • いろいろソフトを試したいけど、インストール・アンインストールを繰り返すことでWindowsの環境が汚れるのは嫌だ。
  • 技術屋だから、いろんなソフトがすぐに動かせるよう武装しておきたい。
ばったん
ばったん

エンジニア的には、ソフトが複数バージョンすぐに動かせることや、ホストに環境依存しないところが魅力的!

オススメ技術書紹介

ばったん
ばったん

ばったんのオススメ書籍紹介コーナー!

左の書籍から順番に一言コメントします。

  • 教科書というだけあって基本的なことも丁寧に記載されていてオススメ
  • 実際になにができるのかをすぐに知りたい、という方向け
  • GCPやAWSが絡むならKubernetesも一緒に
  • インフラ傾向にある場合はこちら
  • Dockerを深堀りしたい方は定番のオライリー本

コメント

タイトルとURLをコピーしました