以下のコード枠内のコマンドはPowerShellで実行します
目次
Docker Hubからimageをダウンロードし実行
docker run -d -p 8080:80 dockerk/welcome-to-docker
短縮表記が可能な構造をしている:
- Dockerは、Docker Hub のリポジトリ名であり、
welcome-to-docker
はその中のイメージ名。 - 以下が「完全な指定」として認識されます。
docker run -d -p 8080:80 docker.io/docker/welcome-to-docker:latest
Docker の便利な解釈機能:
- タグが省略された場合に
latest
を自動補完するため、ユーザーが「簡略化された指定」 - コマンドを実行すると、Docker は以下のように動作します
- ローカルキャッシュに
docker/welcome-to-docker:latest
イメージがあるか確認。 - 存在しない場合、Docker Hub からダウンロード。
- ポート
8080
をホスト側、ポート80
をコンテナ側としてマッピングして起動。
- ローカルキャッシュに
Dockerfileから実行
テキストエディタで Dockerfile
を作成します
Dockerイメージをビルドする
docker build -t my-python-app .
コンテナを実行する
docker run -d --name my-running-app my-python-app
-d
はデタッチモード(バックグラウンド実行)を指定します。--name my-running-app
はコンテナに名前を付けます。my-python-app
はビルドしたイメージの名前です。
ログを確認する場合は、以下のコマンドを使用します
docker logs my-running-app
コンテナを停止
docker stop my-running-app
コンテナを削除
docker rm my-running-app
現在動作中のコンテナ一覧
docker ps
すべてのコンテナ一覧(停止中も含む)
docker ps -a
イメージ一覧
docker images
不要なイメージとコンテナのクリーンアップ
docker system prune -a
docker-compose.ymlから実行
docker-compose.yml
を作成
プロジェクトのルートディレクトリに docker-compose.yml
ファイルを作成します
サービスを起動
docker-compose.yml
が保存されたディレクトリに移動し、以下のコマンドを実行します。
サービスをバックグラウンドで起動
docker-compose up -d
フォアグラウンドで起動
docker-compose up
サービスの状態を確認
docker-compose ps
ログの確認
全てのサービスのログを確認
docker-compose logs
特定サービスログ確認
docker-compose logs web
サービスの停止と削除
サービスを停止
docker-compose down
停止時にボリュームも削除
docker-compose down -v
その他のよく使うコマンド
サービスを再ビルドして起動
docker-compose up --build -d
特定のサービスのみ起動
docker-compose up -d web
構成ファイルの検証(docker-compose.yml
ファイルにエラーがないか確認する)
docker-compose config
環境変数の利用
docker-compose.yml
で環境変数を使用することができます
.env
ファイルを作成
WEB_PORT=8080
docker-compose.yml
内で参照
services:
web:
image: nginx
ports:
- "${WEB_PORT}:80"