Docker for Windowsを使う。(Windows10向け)

私は普段からWindowsのノートパソコンを使っているのですが、新しいプログラミング言語フレームワークを試そうと思うと、Windows上に直接環境を作るのには何かと困ります。

つい最近も、勉強会に参加して環境構築でつまづくという出来事が続いたので、今更ですが、Dockerを使ってみる事にしました。

簡単な導入手順を自分用にメモしておきます。 

 

 

対象環境

64ビット版Windows10 Proで試しています。

homeエディションではHyper-Vが使えないらしいので、その時はVirtualBoxなどが必要とのこと。

 

Hyper-Vを有効化する

Windows PowerShellを管理者で実行して以下のコマンドを実行し、マシンを再起動する。

> Enable-WindowsOptionalFeature -Online -FeatureName:Microsoft-Hyper-V -All

 

Docker for Windowsをインストールする

以下のサイトからダウンロードしてインストール。

https://docs.docker.com/docker-for-windows/install/

 

ここまででDockerのセットアップは完了。

 

試しにnodejsでサーバーを動かす

docker run

nodejsでサーバーを立ち上げてローカルで動作確認をする。

コマンドプロンプトで以下のように打ち込む。ローカルの8080ポートをDocker環境に転送するようにしている。

> docker run -p 8080:8080 -it node /bin/bash

 

Docker環境が構築されてログインできる。最初は少し時間がかかる。

npmはインストールされている状態になっている。

 

vimをインストール

どうやらviが入っていないので入れる。何かしらファイルを作って中身を書ければviじゃなくてもいい。

> apt-get update

> apt-get install vim

 

node init

てきとうな作業ディレクトリを作ってnodeのプロジェクトを作る。

> npm init

動作確認なので全てデフォルトのままでいく。いろいろ聞かれますが全てEnterを押していく。

 

npm install

> npm install

する

 

index.jsを作る

プロジェクトのディレクトリにindex.jsを作って以下のような内容にする。

動けばなんでもいいが、ポート番号は最初に転送の指定をした番号にしておく。

app.set('port', 8080);

app.get('/', function(request, response) {
response.send('Hello World')
});

app.listen(app.get('port'), function() {
}); 

 

node index.js

node index.js

とコマンドを入力してサーバーを起動する。

ブラウザでhttp://localhost:8080と打てばウェブページが表示されると思います。

 

Dockerの状態を保存する

そのままctrl+DとかでDocker環境を抜けてしまうと作業が全て消えてしまうので、保存するようにします。

 

detachする

ctrl+p ctrl+qと入力してコマンドプロンプトに戻る。

Dockerコンテナを起動したまま抜けるのをdetachというらしい。

 

コンテナIDを調べる

> docker ps

とうつとコンテナの一覧が出る。今起動していた「CONTAINER ID」の値を見る。

 

commitする

> docker commit (コンテナID) (イメージ名)

というコマンドでコンテナの状態を保存する。

イメージ名は自分が分かりやすいものにする。

 

ここまででコンテナの保存が完了する。

 

attachする

コンテナに戻りたい場合はattachする

> docker attach コンテナID

 

おまけ(エラー対策など)

Error response from daemon: Bad response from Docker engine

dockerのコマンドを入力した時に以下のようなエラーが出る事がある。

Error response from daemon: Bad response from Docker engine

 

Dockerのアプリケーションを開き(タスクトレイのDockerアイコンからsettingを選択する)、左メニューの「Reset」を選び、「Reset to factory defaults...」を実行するとなおる。

 

 

以上。とりあえずこれでWindows10でDockerが動かせるようになった。

あとは自分用の環境をあらかじめいくつか用意しておくと、勉強や検証がはかどると思う。

Windows10ユーザーの方は特に助かるのではないかと思う。(私はとても助かる) 

 

そして、マイクロソフトさんはWindowsマシンがエンジニアに選ばれるように、頑張ってほしい。