DockerについてからVSCodeへの導入まで

**今回はDockerについてからVSCodeへの導入までを記事にしました。**

**Dockerの仕組み**
通常、アプリケーションを動かすためには、サーバーに様々な設定を行い、環境を整える必要があります。たとえば、特定のバージョンのプログラミング言語やライブラリが必要だったり、サーバーごとに設定が異なるためにトラブルが発生したりします。しかし、Dockerを使えば、そのような環境を「コンテナ」に閉じ込め、どこでも同じ環境でアプリケーションを動かすことが可能です。

Dockerは、次のような仕組みで動作します：

Dockerイメージ：アプリケーションとその環境をまとめた「設計図」のようなもの。イメージは何度でも使い回すことができ、1度作成すればどのサーバー上でも同じ動作環境が再現されます。
Dockerコンテナ：イメージを基に実際に動作する仮想環境。コンテナはアプリケーションの実行環境を隔離して動かし、軽量で高速です。
Dockerエンジン：コンテナを管理・実行するエンジン。Dockerエンジンがコンテナを動かすための基盤となります。
Dockerの利点
# 1. 環境の一貫性
Dockerを使うと、開発環境と本番環境で同じ設定や依存関係を持つことができます。これにより、「開発環境では動くけど、本番環境では動かない」といった問題が解消されます。

# 2. 軽量で高速
従来の仮想マシン（VM）と比べて、DockerコンテナはOSのカーネルを共有するため、非常に軽量で起動も高速です。VMは完全なオペレーティングシステム全体を仮想化するのに対し、Dockerはアプリケーションの実行に必要な最小限の部分だけを仮想化します。

# 3. スケーラビリティ
Dockerを使えば、複数のコンテナを簡単に起動・停止・再起動でき、必要なリソースに応じてアプリケーションを柔軟にスケールさせることが可能です。

# 4. クラウドとの相性の良さ
Dockerはクラウド環境とも非常に相性が良く、AWSやGCP、AzureなどのクラウドサービスでもDockerを簡単に利用できます。これにより、コンテナ化したアプリケーションをクラウド上で簡単に展開することができます。

**Dockerの主なコマンド**
Dockerにはさまざまなコマンドがありますが、ここでは基本的なものを紹介します。
```
docker pull [イメージ名]
```

DockerHubからイメージをダウンロードします。
```
例: docker pull nginx
```
```
docker build [オプション] [Dockerfileの場所]
```

Dockerイメージを作成します。Dockerfileを基に、指定された環境をコンテナ化します。
例: docker build -t myapp .
docker run [オプション] [イメージ名]

Dockerコンテナを起動します。バックグラウンドで起動させる場合は-dオプションを使います。
```
例: docker run -d -p 8080:80 nginx
docker ps
```

現在実行中のコンテナを一覧表示します。
```
例: docker ps
docker stop [コンテナID]
```
```
指定したコンテナを停止します。
例: docker stop abc123
docker rm [コンテナID]
```
```
停止したコンテナを削除します。
例: docker rm abc123
```
**Dockerの利用例**
例えば、ウェブ開発者がNode.jsアプリケーションを開発しているとします。開発チームの全員が同じ環境で動作させたい場合、Dockerを使って次のような手順を踏むことができます：

Node.jsの環境を含んだDockerイメージを作成。
チームメンバー全員がそのイメージをdocker pullで取得。
どこでも同じコンテナでアプリケーションを実行できるため、動作環境の不一致が解消。
# まとめ
Dockerは、アプリケーションを簡単に移動・管理できるようにする革新的なツールです。開発者にとっては、環境の一貫性を保ち、効率的にスケーラブルなアプリケーションを構築できる手段となります。仮想マシンよりも軽量で高速、そしてクラウド環境にも適しているため、現代のアプリケーション開発には欠かせない存在です。

Dockerを使いこなすことで、より柔軟で効率的な開発体験を手に入れられます。まずは基本的なコマンドから学び、実際にコンテナを作成して試してみてください。





VSCodeでDockerを使う手順
Dockerのインストール

まずは、DockerがPCにインストールされていることを確認します。まだインストールしていない場合は、公式サイト（Docker公式サイト）からダウンロードしてインストールします。
インストール後、ターミナルでdocker --versionを実行し、正しくインストールされたことを確認します。
Docker拡張機能のインストール

VSCodeの拡張機能マーケットプレイスから「Docker」拡張機能をインストールします。この拡張機能は、Dockerの操作をVSCode内で簡単に行えるようにするものです。
インストール手順:
VSCodeのサイドバーにある拡張機能アイコンをクリック。
検索バーに「Docker」と入力して、Microsoftが提供している公式拡張機能をインストール。
VSCodeでDockerを操作

拡張機能をインストールすると、VSCodeのサイドバーにDockerのアイコンが追加されます。これを使って以下の操作を簡単に行うことができます：
コンテナの作成・起動・停止: コンテナの一覧表示や、コンテナの作成、実行、停止が可能です。
Dockerイメージの管理: イメージの一覧表示、イメージの作成・削除が簡単に行えます。
Docker Compose: 複数のコンテナを一括で起動できるdocker-composeも、VSCodeから操作が可能です。
Dockerファイルの作成補助: Dockerfileを作成するときに、自動補完機能が使え、効率的に記述できます。
Dockerファイルの作成

VSCodeでは、Dockerfileを簡単に作成できます。Dockerfileを新規作成し、アプリケーションのビルド環境を記述します。VSCodeの拡張機能が自動補完を提供してくれるため、スムーズに作業が進められます。
例: Node.jsアプリケーションのDockerfile
dockerfile
# ベースイメージを指定
```
FROM node:14
```

# 作業ディレクトリを指定
```
WORKDIR /usr/src/app
```

# パッケージのインストール
```
COPY package*.json ./
RUN npm install
```

# アプリケーションファイルをコピー
COPY . .

# ポートを開放
```
EXPOSE 8080
```

# アプリケーションを実行
```
CMD ["node", "app.js"]
```
ターミナルからDockerコマンド実行

VSCodeには統合ターミナルがあるため、直接VSCode内でdockerコマンドを実行することもできます。
例: コンテナを起動する
```
docker run -d -p 8080:80 myapp
```
**Docker拡張機能の主な機能**
コンテナの管理: コンテナの開始、停止、削除、ログの確認などがGUIで簡単に行えます。
イメージの管理: ローカルやリモートにあるDockerイメージをGUIで操作できます。
Docker Compose: 複数のコンテナを一括で管理できるdocker-compose.ymlファイルを使った操作が可能です。
Dockerfileのビルド: Dockerfileの作成やビルドプロセスもサポートしています。

**基本毎日更新していますので、@y-t0910をフォローしていただけると嬉しいです。**