Dockerは、コンテナ型の仮想化技術を提供するツールであり、アプリケーションの開発・テスト・運用を効率化します。
この章では、Dockerの基本的なコマンドを学び、コンテナの起動・確認・停止・削除の操作を習得します。
[ 学習フェーズ ]
学ぶべきポイント:
以下のDockerコマンドを学びます。
docker run
(コンテナの起動)docker ps
(実行中のコンテナの確認)docker stop
(コンテナの停止)docker rm
(コンテナの削除)
確認ポイント
docker ps -a
を使うと何が確認できるか?- 停止したコンテナは、すぐに削除しなくても問題ないか?
docker run
とdocker start
の違いは?
[ 実践フェーズ ]
ここでは、Docker公式のリポジトリから単体のimageをダウンロードして実行してみましょう。
コンテナの取得、起動、終了を学びます。
次のステップでは、このイメージをDockerfileを使ってカスタマイズし、自分用の環境を作成していきます。
1. hello-world
コンテナを実行する。
まずは、hello-worldを表示してみましょう。公式リポジトリにhelloworldが出力されるimageが存在しますので、それを利用します。
docker run hello-world
※ Docker Hub(Dockerの公式リポジトリ)から hello-world
イメージを取得し、コンテナが実行されます。
動作確認方法:
実行後、ターミナルに以下のようなメッセージが表示されれば成功です。
Hello from Docker!
This message shows that your installation appears to be working correctly.
もしエラーが出る場合は、Dockerが正しくインストールされているか確認してください。
2. nginx
コンテナをバックグラウンドで起動し、動作を確認する。
別のコンテナも作成してみましょう。今回はnginxを起動してみます。
docker run -d -p 8080:80 nginx
※ -d
オプションはバックグラウンド実行を意味します。
動作確認方法:
コンテナの一覧を表示し、起動していることを確認します。
docker ps
出力例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3a1b2c3d4f5 nginx "nginx -g 'daemon of…" 10 seconds ago Up 10 seconds 0.0.0.0:8080->80/tcp quirky_morse
STATUS
が Up
になっていることを確認してください。
さらに、nginx
が動作していることをブラウザで確認します。
ブラウザのURL欄に以下を入力して開きます。
http://localhost:8080
Nginxのデフォルトページが表示されれば成功です。
3. コンテナを停止する。
docker stop <コンテナID>
※ <コンテナID>
には docker ps
の出力結果に表示された CONTAINER ID
を指定します。
動作確認方法:docker ps
を実行し、STATUS
が消えていれば停止完了です。
docker ps
もし表示されなければ、すべてのコンテナを含めたリストで確認します。
docker ps -a
STATUS
が Exited
になっていれば停止成功です。
4. コンテナを削除する。
docker rm <コンテナID>
※ <コンテナID>
には docker ps -a
で表示されたコンテナIDを指定します。
動作確認方法:
再度 docker ps -a
を実行し、削除されたことを確認します。
docker ps -a
削除後、コンテナIDがリストに表示されなければ成功です。
+α MySQLサーバーのコンテナを立ち上げる
1. MySQLコンテナの起動
以下のコマンドを実行し、MySQLサーバーを起動します。
docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 mysql:latest
オプションの説明:
-d
: バックグラウンドで実行--name my-mysql
: コンテナにmy-mysql
という名前を付ける-e MYSQL_ROOT_PASSWORD=my-secret-pw
:root
ユーザーのパスワードを設定-p 3306:3306
: ホストの3306ポートをコンテナの3306ポートにマッピングmysql:latest
: 最新のMySQLイメージを使用
※ nginxと違い、-eなどが必須オプションとなる点を理解しておきましょう。
2. MySQLにログイン
起動したMySQLコンテナに接続し、データベースを確認します。
docker exec -it my-mysql mysql -u root -p
パスワードの入力を求められるので、my-secret-pw
を入力します。
※PCにMySQLクライアントを入れておく必要があります。
3. データベース一覧の確認
ログイン後、以下のSQLコマンドを実行し、デフォルトのデータベースを確認しましょう。
SHOW DATABASES;
出力例:+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4. MySQLコンテナの停止と削除
不要になったら、以下のコマンドで停止・削除できます。
docker stop my-mysql
docker rm my-mysql