個人的な備忘録：Docker Hubを使ってnginxイメージをpullし、ローカルで動かしてみた

## はじめに

Docker Hubは、公式のDockerイメージを簡単に取得し、ローカル環境で利用できる便利なプラットフォームです。

:::note warn
***Docker Hub単体で利用する機会は多くないかもしれませんが、この記事では自身の学習の復習として基本的な操作を整理しています。***
:::

本記事は、個人的な備忘録としてまとめたものです。**そのため、一部内容に物足りない部分があるかもしれませんが、少しでもお役に立てれば幸いです！**

## 書こうと思ったきっかけ
Dockerは、コンテナ型仮想化技術として広く注目を集めており、特にDocker Hubを活用することで、アプリケーションのセットアップが驚くほど簡単になります。

実際にDocker Hubを利用して公式イメージを活用する機会があり、その便利さを改めて実感しました。

:::note info
**この経験を通じて得た学びを、自分の理解を深めるためにもアウトプットとしてまとめてみることにしました。**
:::

この記事が、同じようにDockerを学んでいる方々の参考になれば幸いです！

## Docker Hubとは？

**Docker Hub**は、Docker イメージを保存、共有、管理するための公式のリポジトリサービスです。  

***Dockerの利用を効率化するための様々な機能を提供しています。***

---

### 主な機能

#### Docker イメージの公開と共有
- アプリケーションやミドルウェアのDockerイメージを共有可能。
- オープンソースや商用イメージを利用できるため、開発効率が向上。

#### 公式イメージの提供
- MySQL、Nginx、Redisなど、よく使われるアプリケーションの公式イメージを簡単に取得可能。
- 公式サポートのあるイメージを利用することで信頼性を確保。

#### プライベートリポジトリ
- プライベートなイメージを保存可能。
- チームや個人で安全にイメージを利用できる（プライベートリポジトリは有料プランが必要）。

#### CI/CDとの統合
- Docker Hubを使って自動ビルドを設定可能。
- 継続的インテグレーションやデプロイメントパイプラインと統合し、開発フローを効率化。

---

## Docker Hubを利用してローカルで動かしてみた

以下は、Docker Hubのイメージをローカルで簡単に動かす手順です。

### 1. Dockerのインストール
Dockerをインストールしていない場合は、公式サイトからインストールしてください。  
[Docker公式ダウンロードページ](https://www.docker.com/products/docker-desktop/)

### 2. Docker Hubにログイン
Docker Hubでアカウントを作成し、ターミナルからログインします。

```bash
docker login
```

ログインコマンドを実行すると、以下のようなメッセージが表示されます。

```bash
➜  Desktop git:(main) ✗ docker login

USING WEB-BASED LOGIN
To sign in with credentials on the command line, use 'docker login -u <username>'

Your one-time device confirmation code is: xxx-xxx
Press ENTER to open your browser or submit your device code here: https://login.docker.com/activate
```

ブラウザが自動で開き、`https://login.docker.com/activate`にアクセスする画面が表示されます。指示に従ってログインを完了してください。

**ログインが成功すると、以下のような画面が表示されます。**

![Screenshot 2025-01-19 at 21.56.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/dfd62152-03f1-065a-6d19-cc971008982a.png)

### 3. Dockerイメージを取得
**Docker Hubから利用したいイメージを検索します。例えば、`nginx`イメージを使う場合：**

```bash
docker pull nginx
```

このコマンドを実行すると、Docker Hubから最新の`nginx`イメージがローカル環境にダウンロードされます。

### 4. Dockerコンテナを実行
ダウンロードした`nginx`イメージを使ってコンテナを起動します。以下のコマンドを実行してください。

```bash
docker run -d -p 8080:80 nginx
```

**コマンドのオプション解説**

- `-d`: バックグラウンドで実行。
- `-p 8080:80`: ローカルのポート8080をコンテナのポート80にマッピング。

ブラウザで [http://localhost:8080](http://localhost:8080) を開くと、nginxのデフォルトページが表示されます。

![Screenshot 2025-01-19 at 22.02.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/85024f0b-0ea8-61ed-5ec2-17d4d8ac9991.png)

#### `Is the docker daemon running?`のエラーについて

このエラーは、Dockerが正しく動作していない、もしくはDockerデーモンが起動していない場合に表示されます。

***以下のようなエラーメッセージが表示されることがあります。***

```bash
➜  Desktop git:(main) ✗ docker pull nginx
Using default tag: latest
Cannot connect to the Docker daemon at unix:///Users/xxx/.docker/run/docker.sock. Is the docker daemon running?
```

私の場合は、単純にDockerアプリを起動していなかったため、アプリを起動することで問題が解決しました。

### 5. 動作中のコンテナを確認
実行中のコンテナを確認するには、以下のコマンドを使用します：

```bash
docker ps
```

このコマンドを実行すると、現在動作中のコンテナリストが表示されます。

### 6. コンテナの停止と削除
**動作中のコンテナを停止したい場合：**

以下のコマンドを実行して、指定したコンテナを停止します。

```bash
docker stop <コンテナID>
```

**コンテナを削除する場合：**

停止したコンテナを削除するには、以下のコマンドを使用します。

```bash
docker rm <コンテナID>
```

## まとめ
Docker Hubは、公式のDockerイメージを簡単に取得し、ローカル環境で利用できる便利なプラットフォームです。

:::note warn
**※ポイント**
***Docker Hubの基本的な流れは、「イメージの検索・取得 → コンテナの起動」です。***
:::

初めてDockerを触る場合は、`nginx`や`mysql`などの公式イメージを活用して、実際に動かしてみることをおすすめします。

***シンプルな操作から始めて、Dockerの便利さをぜひ体感してください！***