用語集に戻る
インフラ中級

Docker

どっかー

一言で言うと

アプリケーションとその動作環境をまるごとパッケージ化する技術。「どの環境でも同じように動く」を実現する。

もう少し詳しく

一言で言うと

アプリケーションとその動作環境をまるごとパッケージ化する技術。「どの環境でも同じように動く」を実現する。

もう少し詳しく

Dockerは、アプリケーションを「コンテナ」という単位でパッケージ化する技術です。引っ越しに例えると、家具を1つずつ運ぶのではなく、部屋ごとコンテナに入れて運ぶようなものです。新居(別のサーバー)でコンテナを開ければ、まったく同じ部屋が再現されます。

「自分のPCでは動くのに、本番サーバーでは動かない」という問題は開発現場でよく起きます。OSの違い、ライブラリのバージョン違い、設定の違いなどが原因です。Dockerを使えば、アプリとその動作に必要なものをすべてコンテナに含めるため、どの環境でも同じように動きます。

現在のソフトウェア開発では、Dockerはほぼ標準的な技術になっています。

実務でどう使うか

  • マーケティング: 直接触ることは少ないですが、「環境構築が簡単になる」技術として知っておくと、エンジニアとの会話で「Dockerで環境を揃える」の意味がわかります

  • デザイン: デザインツールのプレビュー環境がDockerで構築されていることがあります。「docker compose up でプレビューが見れます」と言われたとき、理解できます

  • PM: 開発・テスト・本番の環境差異によるバグを減らす技術として、Dockerの導入を検討する場面があります
  • コードで見てみよう

    # Dockerfile: アプリの「レシピ」
    FROM node:20 # Node.js 20を使う
    WORKDIR /app # 作業フォルダを設定
    COPY package.json . # 依存関係の定義をコピー
    RUN npm install # ライブラリをインストール
    COPY . . # アプリのコードをコピー
    CMD ["npm", "start"] # アプリを起動

    # コマンド1つで環境構築&起動
    # docker build -t my-app .
    # docker run my-app
    # → 誰がどのPCで実行しても、同じ結果になる!

    関連する用語

    この用語を学べるコース

    この用語を実際に使ってみよう

    チョットデキルなら、5分のレッスンで実際にコードを書いて学べます。

    コース一覧を見る