前提
・導入メモになります。
・いろいろ試してみたが、やっぱりHyperVがいい
準備するもの
アプリケーション側
アプリケーション側はnodejs を使用します。
今回はnode の公式リポジトリを使用するための、Dockerfile
app-server/Dockerfile
FROM node:5
RUN npm -g install redis
ENV NODE_PATH C:\nodejs\node_modules
ENTRYPOINT ["node", "app.js"]
app-server/src/app.js
var redis = require('redis');
var redis_client = redis.createClient(6379, "noderedis");
var listen_port = 10080;
require('http').createServer(function (request, response) {
redis_client.incr('counter', function(error, reply) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end("You accessed here " + reply + " times.\n");
});
}).listen(listen_port, '0.0.0.0');
console.log("Server is running on port " + listen_port + ".");
Docker compose ファイルの作成
docker-compose.yml
nodeapp:
build: "./app-server"
container_name: "nodeapp"
working_dir: "/usr/src/app"
ports:
- "10080:10080"
volumes:
- "$PWD/app-server/src:/usr/src/app"
links:
- "noderedis"
noderedis:
image: "redis:3"
container_name: "noderedis"
コンテナ一覧を確認
$ docker ps
実行中のコンテナ一覧
$ docker ps -a
コンテナ起動
$ docker-compose up
コンテナ停止
$ docker stop *contenaID*
おまけ
コンテナ削除
$ docker rm *contenaID*
$ docker-compose kill
マウントできない時に疑うポイント
参考になったURL
https://qiita.com/jusotech10/items/cb8077efb9b7a74dfdcc
まとめ
もともとインストールしてるoracleの仮想マシーンとDocker toolbox の相性が合わない⇒ 一旦両方ともアンインストールして、入れ直すときに、仮想マシーンにチェックして入れ直すとうまくいく
Windowsのドッカーのツールボックスのマウントは、
C:¥Users直下とマウントされるみたいです。
お金に余裕あるなら、Windows10proを最初に買ってHyperVの仮想環境を使うのが手っ取り早いし起動も早い。。仕事上はproなので環境周りが楽でした。ダッシュボードでコンテナ管理が使えるので便利かと思います。
前に作ったVagrantfile環境の整理したら、オラクルもドッカーもアンインストールしてモジュール置くためのディレクトリのマウントに再挑戦してみようと思います。。