Docker で Node.js アプリケーションをコンテナ化する方法

Docker で Node.js アプリケーションをコンテナ化する方法

コンテナ化されたアプリケーションは、ほぼすべてのプロジェクト チームが直面する主要な問題のいくつかを解決できるため、今日の世界でますます人気が高まっています。

この記事では、Docker を使用して node.js アプリケーションをコンテナ化する方法について説明します。続行する前に、コンピューターに Docker がインストールされていることを確認してください。

ドッカー: https://www.docker.com/products/docker-desktop

インストール プロセスが完了したら、Docker Desktop を開き (バックグラウンドで実行したままにします)、docker version を実行してインストールが完了したことを確認します。

このチュートリアルでは、依存関係の少ない基本的な node.js アプリケーションを使用していますが、プロジェクトでは、私のものよりも依存関係が多い高度な node.js アプリケーションを使用している可能性があります。

まず、app.js ファイルを見てみましょう。

  1. 定数express は ('express')を必要とします
  2. const app = express ();app.listen(3000, () = > {
  3. console.log('ポート3000でリクエストをリッスンしています');
  4. });app.get('/', (req, res) = > {
  5. console.log('リクエストが作成されました');
  6. res.send('Hello World!');
  7. });

ここで私が行ったことは、基本的に、Express を使用して単純な node.js サーバーを作成することです。ただし、次のようにして、Express node.js サーバーを使用しないことを選択することもできます。

  1. 定数http = require ('http');
  2. const server = http .createServer(req, res) = > { console.log('リクエストが作成されました');
  3. // ここでレスポンスを設定する
  4. res.setHeader('Content-Type', 'text/plain');
  5. res.write('Hello World!');
  6. res.end();});server.listen(3000, '0.0.0.0', () = > {
  7. console.log('ポート3000でリクエストをリッスンしています');
  8. });

package.json は次のようになります。これは基本的な package.json ファイルなので、これ以上の依存関係は含まれません。しかし、あなたの場合は私よりも多くの依存関係を持つ可能性があります。

さて、次は Dockerfile を作成します。簡単です。フォルダー内に新しいファイルを開き、Dockerfile という名前を付けます。好きなテキストエディタを使用して作成できます。以下に、このプロジェクトで使用した Dockerfile を示します。必要に応じて編集できます。

  1. ノード:10から
  2. // プロジェクトに必要なイメージ名を指定します
  3. ワークディレクトリ /usr/src/app
  4. // 作業ディレクトリのパスを設定する
  5. COPY package*.json //package.jsonとpackage-lock.jsonの両方をコピーします
  6. npmインストールを実行
  7. // すべての依存関係をインストールします
  8. コピー 。 。
  9. // プロジェクト内の他のすべてのファイルをコピーします
  10. エクスポーズ3000
  11. // アプリケーションが実行されているポートを公開する
  12. コマンド ["ノード", "app.js" ]
  13. // ここでアプリケーションを実行するコマンドを入力できます

すべての準備が整ったので、Dockerfile を使用して Docker イメージをビルドできます。ターミナルを開き、次のコマンドを実行して Docker イメージをビルドします。ターミナルでパスがプロジェクト フォルダーに設定されていることを確認します。

  1. docker ビルド 。 -t こんにちは世界

注: hello-worldはdockerイメージの名前です

これには、Docker Hub から Node イメージをプルし、Dockerfile に記載されているすべての手順を実行する必要があるため、時間がかかる場合があります。プロセスが完了したら、この Docker イメージからコンテナを構築できます。次のコマンドを実行し、ポート マッピングが正しく行われていることを確認します。

  1. docker run -p 8080:3000 --name c1 hello-world

注: 好みのポートを選択できます。ポート 8080 はローカル マシンに属し、アプリケーションはポート 3000 で実行され、c1 はコンテナーの名前、hello-world は Docker イメージです。

これでコンテナの実行が開始され、ブラウザでアプリケーションを表示できるようになります。これを実行する前に、ターミナルで docker ps を実行し、コンテナが実行されていることを確認してください。確認したら、ターミナルで docker port c1 (ここで、c1 はコンテナの名前) コマンドを発行してポートを確認することもできます。

  1. docker ポート c1
  2. >> 3000 /tcp - > 0.0.0.0:8080

ブラウザを開いて localhost:8080 と入力すると、ブラウザに node.js アプリケーションの応答が表示されます。

要約する

おめでとう! Docker を使用して Node.js アプリケーションのコンテナ化が完了しました。

これらの概念をよく理解しておくことが最善であり、Docker を使用してアプリケーションをコンテナ化してみることも忘れないでください。

<<:  ハイブリッドクラウドとコロケーションデータセンターが持続可能なIT運用を実現する方法

>>:  SalesEasyのShi Yanzeが[2020年中国デジタルエコシステムSaaSリーダー]賞を受賞

推薦する

ウェブサイトのトラフィックを増やす5つの方法

SEO 担当者なら誰でも、ウェブサイトのトラフィックがウェブサイト存続の基盤であることを知っています...

Baidu Statistics、ウェブサイト分析の効率化を図るため統計コードの非同期読み込みを開始

Baidu Alliance会員の皆様、こんにちは。 Baidu Statisticsは、しばらく前...

HarmonyOS サンプル DistributedMusicPlayer 分散音楽プレーヤー

[[419218]]詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したH...

耿潔:草の根インターネット起業家が成功するための必須要素

皆さんと私の経験と洞察を共有するために、私は再びadmin5に戻ってきました。私が初めて記事を投稿し...

「アスリートも審判員だ」ジュメイは上場前夜に質問を受けた

【Ebrun Power Network News】5月14日のニュース:アスリートであり審判員でも...

初心者のためのSEO実践運​​用の習得方法は?簡単指導プラン

SEO を学び実践する過程で、混乱や混沌の時期を経験した友人は多いと思います。私が困惑しているのは、...

XcodeGhostウイルスは多数の主流iOSアプリケーションに影響を与える

Wuyun脆弱性プラットフォームによると、複数の国内メーカーのアプリ開発者が、サードパーティのチャネ...

不動産ウェブサイトのランキングが完全に失われ、SEO診断から45日後にランキングが回復しました

徐州不動産ウェブサイトは8年間運営されており、古いウェブサイトが降格されることはなく、ウェブサイトの...

bMobilized: 間違いのないモバイルウェブページジェネレータ

bMobilized: 間違いのないモバイルウェブページジェネレータ「モバイルインターネットの時代」...

週刊ニュースレビュー: 垂直型電子商取引が苦境に陥る; YY の収益モデルが論争を巻き起こす

1. 謎のパッケージが真実を明らかにする:JD.com副社長呉勝のビジネスチェーン10月18日、呉勝...

ehvps-50% オフ/$4.5/KVM/2g メモリ/30g ハードディスク/2T トラフィック/He Fremont

ehvps は 2016 年に VPS 事業を開始しました。サーバーはカリフォルニア州フリーモントの...

vpsdime-6g メモリ特別版 VPS 簡易評価

誰かが私に、6G メモリを搭載した vpsdime の VPS は信頼できるかどうか尋ねました。この...

Baiduの検索障害が復旧しました。コードは宇宙カプセルに眠っていました

さらに読む: Baidu の PC 検索結果が異常、モバイル検索の調整による可能性あり百度の検索エン...

中国スマート端末市場半期レポート

今年上半期のスマート端末市場の動向についてお話しします。 QuestMobileのデータによると、市...