はじめに
Dockerは、アプリケーションの開発やデプロイを効率化するためのツールです。Dockerの基本的な概念である"コンテナ"と"イメージ"を理解し、日常的な操作をマスターすることが大切です。
本記事では、初心者がDockerコンテナを操作する際に役立つ基礎知識と実践的なコマンドを解説します。
基本の用語
イメージ (Image)
- 実行環境の"テンプレート"。
- アプリケーションやライブラリ、OSが含まれる。
- 例: Pythonの実行環境を持つイメージ
python:3.10
。
コンテナ (Container)
- イメージを元に作られた、実行可能な環境。
- 独立した実行スペースを提供。
- 例:
python:3.10
イメージから作成されたPythonスクリプトを実行するコンテナ。
例え: イメージは"料理のレシピ"、コンテナは"そのレシピを使って作った料理"。
Docker の基本操作
1. 実行中のコンテナを確認する
現在動いているコンテナを確認するには、以下のコマンドを使用します:
docker ps
出力例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abcd1234 python:3.10 "python" 5 minutes ago Up 5 minutes 0.0.0.0:5000->5000/tcp my_python_container
- CONTAINER ID: コンテナのID。
- IMAGE: 使用しているイメージ名。
- STATUS: 実行中か停止中かを示す。
2. 停止中も含めた全コンテナを確認する
実行中のコンテナだけでなく、停止中のコンテナも確認するには:
docker ps -a
3. コンテナの起動
特定のイメージから新しいコンテナを作成し、起動します:
docker run -it --name <コンテナ名> <イメージ名>
例: Pythonのコンテナを作成する:
docker run -it --name my_python_container python:3.10
-it
: 対話型モードでシェルを使用可能にする。--name
: コンテナに名前を付ける。python:3.10
: 使用するイメージ名。
4. 実行中のコンテナに接続する
起動中のコンテナにアクセスして操作するには:
docker exec -it <コンテナ名またはID> /bin/bash
例: シェルに入る
docker exec -it my_python_container /bin/bash
5. コンテナを停止する
コンテナを停止するには、以下を実行します:
docker stop <コンテナ名またはID>
例: my_python_container
を停止
docker stop my_python_container
6. コンテナを再起動する
停止中のコンテナを再び起動するには:
docker start <コンテナ名またはID>
7. コンテナを削除する
不要になったコンテナを削除するには:
docker rm <コンテナ名またはID>
イメージ操作の基本
1. イメージを取得する
Docker Hubからイメージを取得します:
docker pull <イメージ名>
例: Python 3.10イメージを取得
docker pull python:3.10
2. ローカルのイメージを確認する
現在ローカルに保存されているイメージを確認するには:
docker images
出力例:
REPOSITORY TAG IMAGE ID CREATED SIZE
python 3.10 a1b2c3d4e5f6 2 days ago 932MB
よく使う便利なコマンド
特定のコンテナが動いているか確認する
docker inspect -f '{{.State.Running}}' <コンテナ名またはID>
true
: 実行中。false
: 停止中。
コンテナのログを確認する
docker logs <コンテナ名またはID>
- コンテナのエラーや出力を確認できます。
全てのコンテナを一括で停止する
docker stop $(docker ps -q)
全てのコンテナを一括で削除する
docker rm $(docker ps -aq)
まとめ
Dockerを使いこなすためには、イメージとコンテナの違いを理解し、基本コマンドを使い慣れることが重要です。以下を意識して操作を進めてください:
- イメージを取得してコンテナを作成する。
- コンテナ内でコマンドを実行する。
- 必要に応じて停止や削除を行う。
Dockerは慣れるほど便利さが実感できるツールです。この記事を参考に、効率的にコンテナ操作を学びましょう!