DockerでNode.js(Express)アプリを開発してみる

ここでうまくいかない、、、

737  docker run --rm -v "$PWD":/usr/src/sample-express -w /usr/src/sample-express node:6.3.1-slim npm init -y

 

 

qiita.com

 

Dockerホストの作成
718 docker-machine create -d virtualbox sample-express
719 docker-machine env sample-express
720 eval $(docker-machine env sample-express)

 

ローカル環境にNode.jsを導入したくないのでdockerhubからNode.jsのイメージを取得して実行する

  735   docker pull node:6.3.1-slim

package.jsonを生成する
737  docker run --rm -v "$PWD":/usr/src/sample-express -w /usr/src/sample-express node:6.3.1-slim npm init -y

オプションに関する補足
docker run オプション image名:タグ名 実行コマンド
--rm: 実行後のコンテナを削除します。指定しない場合はゴミが残り続けます。
-v: ホストのディレクトリをコンテナ内のディレクトリにマウントします。"$PWD"はカレントディレクトリを意味します。
-w: ワーキングディレクトリを指定します。

 

package.jsonを編集する

docker run --rm -v "$PWD":/usr/src/sample-express -w /usr/src/sample-express node:6.3.1-slim npm install -D express-generator

 

 

package.jsonのscriptにexpressコマンドを使うための追加をする

package.json
"scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1"
+    "test": "echo \"Error: no test specified\" && exit 1",
+    "express": "express"
},

 

expressアプリの雛形を生成する

 

 

 

 

 

dockerに関して理解していきたい記事一覧

docker基本

qiita.com

docker-machine

qiita.com

qiita.com

 

qiita.com

わからなくなったら、↑が環境設定だったり必要なことを思い出すのにいいと思う。

docker-compose

qiita.com

↑は詰まった

↓でやってみよう

dockerをつかってアプリ開発系記事

qiita.com


何をすればいいかわからなくなったら↑をみて、何がわからないのかを思い出す。

アプリ開発ができるようになるのがゴール

 

Dockerの仕組みを解説している

qiita.com

 

enakai00.hatenablog.com

 

qiita.com

 

 

 

 

その他調べたこと

qiita.com

抜粋

例えば influxdb という名前のコンテナに入るには次のようにします。

docker exec -it influxdb bash

shell が不要なら直接コマンドを実行することもできます。

docker exec -it influxdb ps -ef

 

 

 

 

 

docker-machineに触ってみた

 

概要
「Docker-machineを使って」「VirtualboxにdockerをインストールしたVMを作成」

hello worldを出力するコンテナを走らせる」

 

使ったコマンド

674 docker-machine create --driver virtualbox dev
676 docker-machine ls
677 docker-machine env dev

devマシンの環境変数を表示

エンドポイントや名前、cert_pathなど

678 eval $(docker-machine env default)

evalコマンドで環境変数をセット

(env コマンドを使って環境変数すべてを表示できる
env | grep DOCKER ←これでDOCKERにしぼって表示できる)

679 docker-machine config dev
680 docker $(docker-machine config dev) run busybox echo hello world
681 docker-machine stop dev
683 docker-machine start dev
685 docker-machine ssh dev
686 docker-machine ssh dev "hostname && uname -a"
687 docker-machine rm dev
688 docker-machine ls

メモ

Dockerホストマシンを作るには、docker-machine createを使う。
--driverオプションに virtualbox を指定し、引数にマシン名 dev を渡す。

↓の記事に用途ごとに必要なコマンドが書いてあった。

 
you

qiita.com

 

次に理解したい記事

qiita.com

 

 

参考にした記事

qiita.com

dockerに触ってみた

動機
ホストの環境が汚れるとストレスになってきた
 
わかったことまとめ

dockerのプロセス確認
docker ps
docker Image確認
docker images
コンテナのcreateとstart
docker run Imageの名前 
imageの名前は、 docker images で一番左にある。
 
チュートリアルにおける操作

さわって理解するDocker入門
第1回 Dockerのイメージ・コンテナ管理の仕組み
https://www.ogis-ri.co.jp/otc/hiroba/technical/docker/part1.html
 
alpineでやった操作
docker run alpine echo "hello from alpine"
docker run -it alpine bin/sh
docker stop 18b688b0fc3d
docker start 18b688b0fc3d
docker attach 18b688b0fc3d
終了
docker stop 18b688b0fc3d
docker rm 18b688b0fc3d


さわって理解するDocker入門

大枠の流れ
dockerfileを使ってイメージをビルドし、イメージからコンテナを起動する
↑の文章をプロセスで分解すると、
Dockerデーモン実行→イメージをビルド→イメージからコンテナの作成、起動(run)

ベースイメージ
自作イメージなら、好きなライブラリ・ミドルウェア、自作のアプリケーションをインストールして設定できる。
dockerfile
ベースイメージに対する操作を記述する設定ファイル
ベースイメージの作成
dockerfileの作成
 
620 mkdir docker_exercise
622 cd docker_exercise/
625 mkdir 1_14
628 cd 1_14/
630 mkdir flask_app
631 cd flask_app/
632 wget https://raw.githubusercontent.com/docker/labs/master/beginner/flask-app/app.py
633 wget https://raw.githubusercontent.com/docker/labs/master/beginner/flask-app/requirements.txt
634 wget https://raw.githubusercontent.com/docker/labs/master/beginner/flask-app/templates/index.html -P templates
635 wget https://raw.githubusercontent.com/docker/labs/master/beginner/flask-app/Dockerfile
654 docker build -t myfirstapp .
655 docker images
657 docker run -p 8888:5000 --name myfirstapp myfirstapp
658 docker ps
 
 

わからないこと
ビルドとは何か。 →imagesをつくることみたい。Dockerfileを利用して作成される
Dockerデーモンとは何か
デーモン実行→ビルド→コンテナの作成、起動    この順番っぽい

使ってないコマンド
docker pull