DOCKER-デフォルトのDockerfileを作成し、イメージを作成してコンテナを実行
🎯 テスト内容
🚀 簡単なnode appの作成
vs codeの使用
npm init
コマンドを実行してパッケージ化します.jsonファイルの作成package.json
{
"name": "nodejs-docker-app",
"version": "1.0.0",
"description": "simple node js app to study docker",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}
expressモジュールのみ追加index.js
const express=require('express');
const port=8080;
const app=express();
app.get('/',(req,res)=>{
res.send("Hello")
});
app.listen(port);
console.log("Server is Running");
🚀 Dockerfileの作成
Dockerfileを作成した理由
上記で作成したnodejsをドッキング環境で実行するには、イメージを作成し、コンテナを作成する必要があります.
Dockerfileを作成して画像を作成
ファイル形式は関係ありません.
Dockerfile
用語
1. FROM
ドッキングイメージを生成するには、ベースイメージをインポートし、ベースイメージのファイルスナップショットを使用して一時コンテナを作成する必要があります.
一時コンテナで使用される基本イメージ
nodeの指定:<バージョン>
2. WORKDIR
アプリケーションのソースコードを含むディレクトリをイメージに作成します.
作成理由は、ローカルディレクトリからコンテナにコピーされたコンテンツがコンテナのルートディレクトリにコピーされないようにするためです.
(スペースのクリーンアップと厳格な隔離が必要)
ex)
Localのファイルをドッキングコンテナのディレクトリにコピーします.
COPYが提供されていない場合、コンテナは仮想環境(独立した空間)です.
私たちの地元のパッケージjsonとindex.jsが認識できない可能性があります
4. RUN
ドッキングコンテナで他の必要な設定のコマンドを指定します.
npm install
銀パック.jsonの内容を反映するために使用COPY package.json ./とCOPY././分かち合う理由
ビルド時にドッキング
すでに構築されている場合は、キャッシュインポートが使用されます.
新規作成よりも効率的です.
ここでCOPYパッケージjson ./とCOPY././COPY././指定する場合は、パッケージを再構築する必要がなく、アプリケーションのコードのみを変更します.jsonが生成されます.
そのため、このように使い分けた方が効果的です.
5. CMD
コンテナの起動時に実行するコマンド.
dockerが実行されている場合、ノードインデックス.jsは実行されます
🚀 Dockerfile build
docker built -t 도커허브아이디/이미지이름:버전 ./
-tタグは、ドッキング画像に良い名前を付けることができます.🚀 コンテナの実行
docker run -p 5000:8080 <이미지 아이디>
ローカルポートとコンテナポートをマッピングする必要がありますor
docker run -p 5000:8080 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app <이미지 아이디>
コンテナにコピーされたファイルを再構築し、ローカルで変更した後、コンテナを実行するプロセスは非常に煩雑です.docker volumeという機能を使用して、ファイルを指定したディレクトリにマッピングします.
Node-modulesはnpm installの実行時に相関を保持する場所です.npm installは現在のコンテナで実行されるため、コンテナ内の個別のローカルをマッピングしないことを指定します.
🌟 実行結果
正常に動作していることを確認します.
😍 以上が私たちのヒントですありがとうございます
Reference
この問題について(DOCKER-デフォルトのDockerfileを作成し、イメージを作成してコンテナを実行), 我々は、より多くの情報をここで見つけました https://velog.io/@sungjin0757/DOCKER-기본-Dockerfile-작성-및-이미지-빌드-후-컨테이너-실행해보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol