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
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を編集する
package.jsonのscriptにexpressコマンドを使うための追加をする
"scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "express": "express"
},
expressアプリの雛形を生成する
dockerに関して理解していきたい記事一覧
docker基本
docker-machine
わからなくなったら、↑が環境設定だったり必要なことを思い出すのにいいと思う。
docker-compose
↑は詰まった
↓でやってみよう
dockerをつかってアプリ開発系記事
何をすればいいかわからなくなったら↑をみて、何がわからないのかを思い出す。
アプリ開発ができるようになるのがゴール
Dockerの仕組みを解説している
その他調べたこと
抜粋
例えば influxdb という名前のコンテナに入るには次のようにします。
shell が不要なら直接コマンドを実行することもできます。
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
を渡す。
↓の記事に用途ごとに必要なコマンドが書いてあった。
次に理解したい記事
参考にした記事
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
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の作成
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