Dockerとは何か
Dockerは、Docker社が開発している、コンテナ型の仮想環境を作成、配布、実行するためのプラットフォームです。(公式サイト→https://www.docker.com/what-docker)。Dockerは、Linuxを使ったもので、簡単にいうと一種の仮想環境作成マシンのようなものです。
Dockerを使うメリット
これまで主流だったWindowsでMacやLinuxを動かす的なVirtualBoxなどの仮想マシンでは、ホストマシン上でハイパーバイザを利用しゲストOSを動かし、その上でミドルウェアなどを動かしており、起動や終了に時間が掛かりました。
ですが、Dockerはホストマシンのカーネルを利用し、プロセスやユーザなどを隔離することで、あたかも別のマシンが動いているかのように動かすことができます。そのため、軽量で高速に起動、停止などが可能です。
ようはお手軽環境切り替えソフトみたいな感じです。WindowsのOS上でLinuxやMacを動かすみたいな仮想環境の構築方法にはコンテナ型とか色々種類があり話が長くなるので省略しますが、興味のある方は調べてみてください。
プログラミングにおいて環境設定というのはとても大事で、同じコードでもOSやPCが違う環境ではうまく動かない・・・なんてことが往々にして起こります。
例えばこのサイトで取り扱っている機械学習や深層学習などではTensorflow・kerasといったpythonのライブラリをインストール・インポートして使うわけですが、その際に原因不明なエラーが結構起こり、ライブラリが動くようになるまでで一苦労・・・なんてことがあります。
また実務においても、多くのエンジニアが参加するプロジェクトなどで各自の環境のバージョンずれも本番環境で問題になってきます。極端な例でいえばpython2.7とpython3.6のコードを混ざるようなもんです。そういう開発環境の構築や準備の段階で、OSやソフトのバージョンの違いや説明不足・手順ミスのせいで余計な手間がかかるのは非常にもったいないですよね?
そんなときに登場するのが、今回紹介するDockerというわけです。Dockerで構築する仮想環境はローカルPCの影響を一切受けず、またコード化されたファイルを共有することで、誰でも同じ環境が簡単に作ることができます。そして、Dockerで作成した仮想環境は他人に簡単に配布することもできるため、Dockerがあれば誰でも同じ環境を簡単に再現することができるのです。
そのため最近Dockerを使う企業も増えており、採用で求められるスキルにもDockerを記載する企業が増えています、なのでIT業界でエンジニアとして働くのであれば、Dockerは使いこなせるようにした方がいいでしょう。
Dockerを使うために必要なもの
こういう感じでDockerは超便利な訳ですが、個人で使うとなると少しハードルがあります。というのもDockerを使うためには以下の環境である必要があるためです。
・OS環境 Windows10 Pro(homeではできません)
・Hyper-vに対応したCPUとその有効化
従来の市販のノートパソコンに入っているWindowsOS(Windows 10 Home)で、これだとDocker起動の際に必要ンHyper-Vがインストールできないので、Windows 10 Proにアップグレードする必要があります。これには13000円くらい掛かります。
Homeでどうしても使いたいならばDocker Toolboxで使用できます。(VirtualBox必要)
Dockerのダウンロード・インストール
というわけでDockerをインストールしていきます。Dockerを使うためにはDocker Community Edition for Windows のインストールする必要があるのでインストーラーを。以下のURLからダウンロードします。
→https://store.docker.com/editions/community/docker-ce-desktop-windows
ダウンロードするためには Please Login To Download→Create Account でメアドとパスワードを登録しアカウントを作成する必要があります。
アカウントを作成しメール認証を行うと先ほどのダウンロードボタンが[Please Login to Docker]から[Get Docker!]に変わっていると思うので、そこをクリックしDockerのインストーラーをダウンロードして起動しインストール作業をおこなってください。
<続き>⇒【Windows10】Dockerの環境構築を分かりやすく解説する<後半>
コメント
[…] ・【Windows10】Dockerの環境構築を分かりやすく解説する(前半) […]