はじめに
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
にアクセスする画面が表示されます。指示に従ってログインを完了してください。
ログインが成功すると、以下のような画面が表示されます。
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アプリを起動していなかったため、アプリを起動することで問題が解決しました。
コンテナ内の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を触る場合は、nginx
やmysql
などの公式イメージを活用して、実際に動かしてみることをおすすめします。
今回のブログ内容が、どなたかの技術の助けになれば幸いです。
おまけ:コンテナの確認と削除方法
Dockerで動作中のコンテナを確認・管理するための基本的な操作を紹介します。
実行中のコンテナを確認する
現在実行中のコンテナを確認するには、以下のコマンドを使用します:
docker ps
このコマンドを実行すると、動作中のコンテナリストが表示されます。
リストにはコンテナIDや名前、使用中のポートなどが含まれます。停止や削除の操作を行う際に必要な情報を確認してください。
コンテナの停止と削除
特定のコンテナを停止するには、以下のコマンドを使用します:
docker stop <コンテナID>
-
<コンテナID>
には、停止したいコンテナのIDを入力してください。
停止したコンテナを削除するには、以下のコマンドを実行します:
docker rm <コンテナID>
これらの基本操作を覚えておくと、Docker環境を効率的に管理できるようになります。初めてDockerを触る方でも安心して操作を進められるよう、ぜひ参考にしてください!