Dockerとは
Dockerは、アプリケーションとその実行環境をコンテナという単位でパッケージ化し、どこでも同じように動作させることができるツールです。仮想マシンと比べて軽量で高速に起動できる点が特徴です。
インストール手順
公式サイトからインストーラをダウンロードし、画面の指示に従ってインストールします。インストールが完了したら、次のコマンドで動作確認を行います。
docker version
バージョン情報が表示されればインストールは成功です。
初めてのコンテナ実行
Dockerの動作確認として、公式イメージのhello-worldを実行してみます。
docker run --rm hello-world
実行すると、Dockerが正常に動作していることを示すメッセージが表示されます。
イメージの取得と管理
Docker Hub には様々なイメージが登録されています。検索して取得するには次のコマンドを使います。
docker pull nginx
取得したイメージは以下のコマンドで一覧表示できます。
docker images
コンテナの起動と操作
取得したイメージからコンテナを起動する基本的なコマンドは次の通りです。
- バックグラウンドで実行:
docker run -d -p 8080:80 nginx - 対話的にシェルを起動:
docker run -it ubuntu /bin/bash
起動中のコンテナは以下で確認できます。
docker ps
停止や削除はそれぞれ次のコマンドです。
- 停止:
docker stop コンテナID - 削除:
docker rm コンテナID
Dockerfileでオリジナルイメージを作成
自分のアプリケーション用にイメージを作りたいときは、Dockerfileを作成します。以下はシンプルな例です。
FROM python:3.10-slim
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD ["python","app.py"]
作成した Dockerfile があるディレクトリで次のコマンドを実行してイメージをビルドします。
docker build -t my-python-app .
ビルドが完了したら、先ほどと同様にコンテナとして起動できます。
docker run -d -p 5000:5000 my-python-app
Docker Composeでマルチコンテナ環境を構築
複数のコンテナを連携させる場合は、docker-compose.ymlを利用します。以下は Web アプリとデータベースを組み合わせた例です。
version: "3"
services:
web:
build: ./web
ports:
- "8000:8000"
depends_on:
- db
db:
image: postgres:13
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydb
同じディレクトリで次のコマンドを実行すると、定義されたすべてのサービスが起動します。
docker compose up -d
停止する場合は docker compose down を使用します。
まとめ
Docker は開発から本番まで一貫した環境を提供し、アプリケーションのデプロイを大幅に簡略化します。基本的なインストール、イメージ取得、コンテナ操作に慣れたら、Dockerfile と Docker Compose を活用して自分だけの開発環境を構築してみましょう。