【2018年度版】32bitのWindowsにDocker環境を構築してみる
投稿者:大島
こんにちは、大島です。
皆様Docker利用されてますか?
弊社でも案件でDockerを使う事が増えてきましたが、多分世の中のIT担当者のPCはまだWindowsの32bit環境が多いのではないでしょうか?
32bit環境でDockerを利用する場合は、ちょっと準備が必要となりますので、今回はDockerが利用できるまでの環境構築方法を紹介したいと思います。
用語説明
環境準備の前に用語を記載しておきたいと思います。用語についてはDocker本家のドキュメントより拝借しております。
- コンテナ=Dockerコンテナ
- コンテナ(container)は docker イメージ を実行するときの実体(runtime instance)です
- イメージ
- Docker イメージは コンテナ の元です
- ホスト=Dockerホスト
- コンテナーを実行するための実行環境のこと。コンテナを実行するためにはDocker Engineが必要
- Docker Engine=エンジン
- ホスト上で動く docker デーモンのプロセスであり、イメージとコンテナを管理します
- machine=Docker machine
- Machine (マシン)は Docker ホストを簡単に作成できるようにするツールであり、クラウド・プロバイダ上やデータセンタでも利用できます。Machine はサーバを作成し、そこに Docker をインストールし、Docker クライアントで通信できるように設定します。
出典:http://docs.docker.jp/glossary.html#container, 2018/03/16
前提知識
コンテナーを動かすためにはDocker Engineが必要になりますが、このEngineが今のところWindows32bit環境では動かない仕様になってます(残念)。
なので、32bitのWindowsでDockerを動かそうと思うと、実はDocker Engineに対応しているOSをWindows32bit上に仮想構築として構築しないとだめです。
この仮想環境がDockerホストとなり、イメージだと以下のような図になるかと思います。
Google先生に「windows 32bit docker 構築」と聞いてみるとよく「Vagrant+Virtualbox」で環境を構築している記事があるかと思いますが、これはVirtualboxが仮想化ソフトでVagrantがVirtualbox上で動く仮想環境とDocker Engine部分の構築をさくっと準備してくれているイメージになります。
今回ですが、なるべくDocker公式で提供されているツールを使って環境を準備出来ないかと調べていた所、Vagrantが担っている仮想環境構築部分をDocker machineという公式ツールが簡単に行ってくれる事がわかりましたので、Docker machineでの環境準備方法をご紹介したいと思います。
作業前にローカルPCにインストールが必要な物
作業を始める前に以下のツールをインストールして下さい
- chocolatey – https://chocolatey.org/
- apt-getのようなwindows版パッケージ管理システムです
- これでDocker-machineをWindowsにインストールします(あえてchocolateyを使うのは、2018年03月時点ですとDocker公式サイトから直接Docker-machineをインストールした場合、仮想環境構築に失敗したからです。chocolateyでインストールしたDocker-machineだと環境構築に無事成功しましたが、私が使用しているPCがだめなのか、最新のDocker-machineバージョンだとだめなのかは分からずじまいでした)
- Virtualbox
作業手順
- chocolateyを使ってDocker-machineをインストール
$ choco install docker-machine -y
- docker-machineコマンドでdockerホスト環境をvirtualbox上に構築
$ docker-machine create --driver virtualbox dockerhost Running pre-create checks... Creating machine... <<省略>> Docker is up and running! To see how to connect Docker to this machine, run: docker-machine env dockerhost $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS dockerhost - virtualbox Running tcp://192.168.99.100:2376 v17.12.1-ce $ docker-machine ssh dockerhost ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ _ _ ____ _ _ | |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __ | '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__| | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ | |_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_| Boot2Docker version 17.12.1-ce, build HEAD : 42357fc - Wed Feb 28 17:52:00 UTC 2018 Docker version 17.12.1-ce, build 7390fc6 docker@dockerhost:~$
※boot2docker: Docker コンテナの実行に特化した Linux ディストリビューションです
以上です、以外に簡単にできてしまいましたね。
このdockerhostという環境の上で他人のDockerイメージをpullして実行してみたら、自分でコンテナーを作成して動かしてみたり等できますので皆さんガリガリ開発してみてください。
次回は、コンテナーを使ってnode.js開発環境を準備する方法をご紹介したいと思います。
紹介
弊社エンジニアが執筆した「IBM Bluemixクラウド開発入門」が技術評論社様より出版されております。是非、お手にとってご覧下さい。
http://gihyo.jp/book/2017/978-4-7741-9084-6