DockerToolBoxを使ってWindowsにDockerをインストールし、コンテナを立ち上げるまで試してみたので記事にしておきます。
ですがその前に、僕の場合まだ開発経験があまりないので、そもそも仮想環境をなぜ作る必要があるのかから調べてみました。
なぜ仮想環境を作る必要があるのか
アプリやサービスを開発し、それをインターネット上で公開するにはインターネットに接続されたコンピュータ(サーバー)に作成したものを置いておく必要があります。
通常は作成したアプリやサービスをレンタルサーバーやVPS、クラウドなどのサーバーにアップロードすることでインターネット上に公開します。
ところがこういったサーバーの多くは、LinuxというOSで動作しています。
僕は普段Windowsを使って作業をしているのですが、この環境でアプリを開発したものがOSの違うサーバー上(Linux)で正常に動作するとは限りません。
そこで使用するのが仮想化という技術です。
仮想化の技術を使えば、WindowsでもMacでも自分の使っているPC上にLinuxの環境を作成することができます。
Vagrantなんかを使えば簡単に仮想環境を構築することができるみたいです。
Dockerとは
Dockerはアプリやインフラ関係で注目されている技術で、コンテナ型の仮想環境を作成・配布・実行することができる技術です。
Vagrantなどの仮想マシンでは、ホストマシン上でHyperviserを利用してゲストOS(仮想環境)を動かし、ゲストOS上でミドルウェアやアプリケーションなどを動かすのに対し、Dockerではホストマシンのカーネルを利用、プロセスやユーザーなどを切り離すことであたかも別のマシンを使っているかのように動かすことができます。
(まだこの辺はちゃんと理解できてません、、笑)
重要なのはこのコンテナ型というところで、通常の仮想環境と違いOSとアプリがインストールされた環境を簡単に構築・削除できる点にあるみたいです。
(しかも軽量)
例えばPythonをインストールしたUbuntsとJavaをインストールしたCentOSみたいな感じでで簡単に作っていけるみたいなんです。
とりあえず高速かつ軽量に仮想環境構築ができるので注目されているようです。
環境
Windows10 Home 64bit
①事前準備
まずパソコンのCPU仮想化を有効化しておく必要があります。
タスクマネージャを起動し、パフォーマンスタブからCPUを選択。
画面右下の「仮想化」部分が無効になっている場合、BIOSから有効化しておく必要があります。
②DockerToolBoxのダウンロード・インストール
Dockerの公式サイトからDockerToolBox for Windowsをダウンロード
ダウンロードした.exeファイルを起動し、インストールします。
インストールの際の注意点として、「Select Additional Tasks」画面で一番下の「Install VirtualBoxWith~」にチェックを入れておきます。
あとはNextで進んでいけばOKです
無事にインストールが完了すると、デスクトップにVirtualBox・DockerquickStart・Kitematikのショートカットが作成されているはずです。
※VirtualBoxはDockerを利用する上で使用するフリーの仮想化ソフトウェアです
③Dockerの起動
DockerQuickStartを起動します。するとターミナル画面が表示されると思います。
Dockerを起動することでVirtualBoxが裏で起動し、Docker利用のための仮想環境が作成されます。
Dockerを起動出来たら試しにコマンドを入力してみましょう。
$ docker --version
バージョンが表示されたら正常に起動しています。
④コンテナの起動
Dockerのコンテナを起動’するためには、まずDockerのイメージを作成する必要があります。
Dockerには「Docker Hub」というDockerイメージを保管しているレジストリがあり、ここからイメージを取得します。(実際にはターミナルからpullすることで取得します。)
今回はHello Worldというイメージを取得してみたいと思います。
$ docker image pull hello-world:latest
取得で来ているか、コマンドで確認します。
docker images
REPOSITORYのところに「hello-world」が追加されたと思います。
これで無事にイメージの取得が完了したので、イメージからコンテナを起動してみます。
docker container run hello-world
コンテナが起動されているかコマンドで確認してみます。
docker container ls -a
⑤コンテナの削除
コンテナのIDもしくはコンテナの名前を指定して以下のコマンドを実行することで削除できます。
docker container rm <container-id or container-name>