DockerコマンドやDockerfileについてのメモ

By maruhi (@maruhi.f5.si)
Published:

コンテナ使って開発や検証環境をいい感じに管理していきたい。 メモ。

1. Dockerの基本コマンド

Dockerを操作する際に役立つ、基本的なコマンドの自分用のメモを記載する。


コンテナ関連のコマンド

実行中のコンテナを表示

docker ps

すべてのコンテナを表示(停止中含む)

docker ps -a

コンテナを停止

docker stop [コンテナ名またはID]

コンテナを削除

docker rm [コンテナ名またはID]


イメージ関連のコマンド

ローカルのイメージを確認

docker images

イメージを削除

docker rmi [イメージID]

イメージを新しくビルド

docker build -t イメージ名 -f Dockerfile .


その他の便利なコマンド

使用されていないリソースを一括削除

docker system prune


2. Docker Volumes(ボリューム)

概要

Dockerボリュームを使用することで、コンテナのデータをホストシステムに永続的に保存できる。


ボリューム関連のコマンド

ボリュームを作成

docker volume create my-volume

ボリュームを確認

docker volume ls

ボリュームを削除

docker volume rm my-volume


ボリュームの使い方

ボリュームを使ってデータを永続化するコンテナを起動する例:

docker run -d --name my-container -v my-volume:/app/data my-image


3. Dockerfile を使った環境構築

Dockerfile を使用して、コンテナを定義する。


Python 3.13 用 Dockerfile

``Dockerfile name=Dockerfile-python FROM python:3.13-slim # 作業ディレクトリを設定 WORKDIR /app # 必要なパッケージをインストール RUN pip install --upgrade pip # 要件ファイルをコピーしてインストール COPY requirements.txt . RUN pip install -r requirements.txt CMD ["python3"] CODEBLOCK12Dockerfile name=Dockerfile-node FROM node:22 # 作業ディレクトリを設定 WORKDIR /app # 必要なパッケージをインストール COPY package.json . RUN npm install CMD ["node"] CODEBLOCK13yaml name=docker-compose.yml 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" CODEBLOCK14bash docker-compose up CODEBLOCK15bash docker-compose down ` - 複数のサービスを一括で停止。 --- ### **Dockerfile と Docker Compose の違い** | **Dockerfile** | **Docker Compose** | |-----------------------------------------|--------------------------------------------------| | 単一のイメージを構築するための設定ファイル | 複数のコンテナを定義し、連携を管理するツール | | ベースイメージや依存関係のインストールを記述 | ネットワーク、ボリューム、環境変数の設定を記述 | | docker build コマンドでイメージを作成 | docker-compose up` で複数のコンテナを起動 |


5. 参考リンク