技術

Dockerとは?


Dockerとは?

  • ソフトウェア開発のためのプラットフォーム
  • アプリケーションとその依存関係を"コンテナ"という単位でまとめて管理する
  • どのような環境でも同じように動作するアプリを簡単に作成/配布/実行が可能

コンテナとは?

アプリとその依存関係をまとめた軽量の仮想環境となります。

コンテナと仮想マシンの違い

大きな違いとして、仮想マシンは仮想化ソフトウェア上にゲスト毎にOSやカーネルが存在するため動作が重い。

対してコンテナはコンテナ管理ソフトウェア上にOSやカーネルが存在せず、ホストOSのOSやカーネルが共有される。またAP+MWのみが環境毎に隔離された状態で保持されるため、動作が軽い。

コンテナの特徴

メリットデメリット
・起動が早い(軽量かつ高速)
・アプリと依存関係を1つのイメージにまとめることで、環境の一貫性を担保できる
・どの環境でも同じ動作を保証する
・ホストOSと同じOSを使わないといけない

Dockerの主要コンポーネント

Docker Composeとは?

Dockerコンテナを管理するツール。

  • 複数のDockerコンテナを定義、管理し、まとめて実行するために使用
  • アプリケーションの開発やテストで利用

特徴

  • 複数コンテナの実行
  • コンテナ間の通信
  • 環境変数やボリュームの共有

おまけ

Dockerを触る際に使用したコマンドを簡単にまとめます。

  • npm install:ノードの初期化
  • npm start:起動
  • docker compose up:実行
  • docker compose down:削除

npmコマンドとは?

Node.jsのパッケージ管理ツールであるnpmを操作するためのコマンドラインインターフェース。

※ Node.jsとは、JavaScriptをサーバーサイドで実行するための実行環境です。もともとJavaScriptはWebブラウザ内で動作するものとして開発されましたが、Node.jsにより、サーバ側でもJavaScriptを使ってWebアプリケーションやその他のアプリケーションを開発できるようになりました。

docker-compose.yaml

利用したい複数のコンテナやネットワーク、ボリュームを定義するファイル

関連記事

多彩な講座から自分に合った講座を探そう!

-技術