Docker for Windowsを使う。(Windows10向け)
私は普段からWindowsのノートパソコンを使っているのですが、新しいプログラミング言語やフレームワークを試そうと思うと、Windows上に直接環境を作るのには何かと困ります。
つい最近も、勉強会に参加して環境構築でつまづくという出来事が続いたので、今更ですが、Dockerを使ってみる事にしました。
簡単な導入手順を自分用にメモしておきます。
- 対象環境
- Hyper-Vを有効化する
- Docker for Windowsをインストールする
- 試しにnodejsでサーバーを動かす
- Dockerの状態を保存する
- コンテナIDを調べる
- おまけ(エラー対策など)
対象環境
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マシンがエンジニアに選ばれるように、頑張ってほしい。