コンテナ使って開発や検証環境をいい感じに管理していきたい。 メモ。
1. Dockerの基本コマンド
Dockerを操作する際に役立つ、基本的なコマンドの自分用のメモを記載する。
コンテナ関連のコマンド
実行中のコンテナを表示
docker ps
- 現在実行中のコンテナをリスト表示。
すべてのコンテナを表示(停止中含む)
docker ps -a
- 停止中のコンテナも含めて表示。
コンテナを停止
docker stop [コンテナ名またはID]
- 実行中のコンテナを停止。
コンテナを削除
docker rm [コンテナ名またはID]
- 不要なコンテナを削除。
イメージ関連のコマンド
ローカルのイメージを確認
docker images
- 現在ローカルに保存されているDockerイメージを表示。
イメージを削除
docker rmi [イメージID]
- 不要なイメージを削除。
イメージを新しくビルド
docker build -t イメージ名 -f Dockerfile .
- Dockerfile を使ってイメージを作成。
その他の便利なコマンド
使用されていないリソースを一括削除
docker system prune
- 未使用のコンテナ、イメージ、ボリュームなどを一括削除。
2. Docker Volumes(ボリューム)
概要
Dockerボリュームを使用することで、コンテナのデータをホストシステムに永続的に保存できる。
ボリューム関連のコマンド
ボリュームを作成
docker volume create my-volume
my-volume
という名前のボリュームを作成。
ボリュームを確認
docker volume ls
- 作成済みのボリュームを表示。
ボリュームを削除
docker volume rm my-volume
- 指定したボリュームを削除。
ボリュームの使い方
ボリュームを使ってデータを永続化するコンテナを起動する例:
docker run -d --name my-container -v my-volume:/app/data my-image
my-volume
をコンテナ内の/app/data
にマウント。
3. Dockerfile を使った環境構築
Dockerfile を使用して、コンテナを定義する。
Python 3.13 用 Dockerfile
FROM python:3.13-slim
# 作業ディレクトリを設定
WORKDIR /app
# 必要なパッケージをインストール
RUN pip install --upgrade pip
# 要件ファイルをコピーしてインストール
COPY requirements.txt .
RUN pip install -r requirements.txt
CMD ["python3"]
- Python 3.13環境を構築するためのDockerfile。
Node.js 22 用 Dockerfile
FROM node:22
# 作業ディレクトリを設定
WORKDIR /app
# 必要なパッケージをインストール
COPY package.json .
RUN npm install
CMD ["node"]
- Node.js 22環境を構築するためのDockerfile。
4. Docker Compose の活用
概要
Docker Compose を使って複数のコンテナを簡単に管理・起動できる。
Docker Compose ファイルの例
PythonとNode.jsの環境を同時に管理するComposeファイルの例。
version: "3.9"
services:
python-service:
build:
context: .
dockerfile: Dockerfile-python
volumes:
- ./app:/app
ports:
- "5000:5000"
node-service:
build:
context: .
dockerfile: Dockerfile-node
volumes:
- ./app:/app
ports:
- "3000:3000"
コマンド例
Compose でコンテナを起動
docker-compose up
- 複数のサービスを一括で起動する。
Compose でコンテナを停止
docker-compose down
- 複数のサービスを一括で停止。
Dockerfile と Docker Compose の違い
Dockerfile | Docker Compose |
---|---|
単一のイメージを構築するための設定ファイル | 複数のコンテナを定義し、連携を管理するツール |
ベースイメージや依存関係のインストールを記述 | ネットワーク、ボリューム、環境変数の設定を記述 |
docker build コマンドでイメージを作成 | docker-compose up で複数のコンテナを起動 |