1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的な備忘録:Docker Hubを使ってmysqlイメージをpullし、ローカルでログインして遊んでみた

Last updated at Posted at 2025-01-19

はじめに

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

Docker Hubを単体で利用する機会は多くないかもしれませんが、この記事ではMySQLイメージを取得し、ローカルでログインする方法を試してみます。

本記事は、個人的な備忘録としてまとめたものです。そのため、一部内容が簡略的かもしれませんが、少しでも参考になれば嬉しいです!

書こうと思ったきっかけ

Dockerは、コンテナ型仮想化技術として広く利用されており、特にDocker Hubを活用することで、アプリケーションのセットアップが驚くほど簡単になります。

前回の記事では、Nginxのイメージをローカルに取得し、コンテナとして立ち上げることに成功しました。次に、MySQLのイメージを使ってみたいと思い、この記事を書くことにしました。

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

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

Docker Hubとは?

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

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


主な機能

Docker イメージの公開と共有

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

公式イメージの提供

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

プライベートリポジトリ

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

CI/CDとの統合

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

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

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

1. Dockerのインストール

Dockerをインストールしていない場合は、公式サイトからインストールしてください。

2. Docker Hubにログイン

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

docker login

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

➜  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

3. Dockerイメージを取得

Docker Hubから利用したいイメージを検索します。例えば、mysqlイメージを使う場合:

docker pull mysql

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

4. Dockerコンテナを実行

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

docker run -d -p 3306:3306 --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql

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

  • -d: バックグラウンドで実行。
  • -p 3306:3306: ローカルのポート3306をコンテナのポート3306にマッピング。
  • --name my-mysql: コンテナにmy-mysqlという名前を付ける。
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw: 環境変数としてMySQLのルートパスワードを設定。

コンテナが正常に起動すると、MySQLサーバーがポート3306で利用可能になります。

接続方法

MySQLクライアントや他のアプリケーションから接続する場合、以下の情報を使用してください:

  • ホスト: localhost
  • ポート: 3306
  • ルートユーザーのパスワード: my-secret-pw

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

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

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

➜  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アプリを起動していなかったため、アプリを起動することで問題が解決しました。

Screenshot 2025-01-20 at 8.41.34.png

コンテナ内のMySQLにログインする方法

DockerでMySQLコンテナを起動した後に、コンテナ内のMySQLにログインする方法を解説します。以下の手順に従えば、簡単にアクセスできます。

手順 1: 実行中のコンテナを確認

まず、MySQLコンテナが起動しているか確認します。以下のコマンドを実行してください。

docker ps

このコマンドで、実行中のコンテナ一覧が表示されます。起動したMySQLコンテナがリストに表示されていることを確認します。

例: my-mysqlという名前のコンテナが動作中の場合の出力

CONTAINER ID   IMAGE    COMMAND                  ...   NAMES
abc123xyz456   mysql    "docker-entrypoint.s…"  ...   my-mysql

手順 2: MySQLにログイン

次に、docker execコマンドを使用して、MySQLにログインします。

docker exec -it my-mysql mysql -u root -p
  • my-mysql: コンテナ名です。自分の環境に合わせて置き換えてください。
  • mysql -u root -p: MySQLのルートユーザーとしてログインするコマンドです。

コマンドを実行すると、以下のようにパスワードの入力を求められます。

Enter password:

ここで、コンテナ起動時に設定したルートパスワード(例: my-secret-pw)を入力します。

手順 3: ログイン成功

パスワードを正しく入力すると、MySQLのプロンプトが表示されます。

  Desktop git:(main)  docker exec -it my-mysql mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 9.1.0 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

これで、MySQLにログインできました!ここからはSQLコマンドを使用してデータベース操作を自由に行えます。

まとめ

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

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

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

今回のブログ内容が、どなたかの技術の助けになれば幸いです。

おまけ:コンテナの確認と削除方法

Dockerで動作中のコンテナを確認・管理するための基本的な操作を紹介します。

実行中のコンテナを確認する

現在実行中のコンテナを確認するには、以下のコマンドを使用します:

docker ps

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

リストにはコンテナIDや名前、使用中のポートなどが含まれます。停止や削除の操作を行う際に必要な情報を確認してください。

コンテナの停止と削除

特定のコンテナを停止するには、以下のコマンドを使用します:

docker stop <コンテナID>
  • <コンテナID>には、停止したいコンテナのIDを入力してください。

停止したコンテナを削除するには、以下のコマンドを実行します:

docker rm <コンテナID>

これらの基本操作を覚えておくと、Docker環境を効率的に管理できるようになります。初めてDockerを触る方でも安心して操作を進められるよう、ぜひ参考にしてください!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?