目次
Docker環境構築の大まかな流れ
例)として、DockerでLaravel環境を構築する場合
Dockerインストール
Docker Composer インストール
windows版のDocker Desktopをインストールした場合は、Docker Composerは自動的にインストール済みの状態になっています。
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Composer(Laravelプロジェクトを作成するため)
Docker概要
DockerエンジンとDocker Composeの違い
DockerFileとdocker-compose.ymlファイル
DockerFileは1つのDocker Engineを起動するテキストファイル
docker-compose.ymlは、複数のDockerコンテナを起動させる事ができるテキストファイル
docker-compose.ymlファイルで全て指定すれば、Docker Composeでコンテナを起動するためのDockerfileは必要ないが、既存イメージに対して追加の設定やカスタマイズを行いたい場合は、DockerFileを作成して、それをdocker-compose.ymlから参照する。
参考
- 【Docker入門】Dockerfileとcompose.yamlの連携①
- 【Docker入門】Dockerfileとcompose.yamlの連携②
- 【Docker入門】Dockerfileとcompose.yamlの連携③
Docker インストール
Hyper-V WSL2 (Windows Subsystem for Linux 2)
2024/12/30 現在
- 開発用途なら WSL2 が便利で効率的。
- 仮想マシンやサーバー環境を扱うなら Hyper-V が適しています。
Docker環境構築
Docker実行
以下のコード枠内のコマンドは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"
参考
参考公式
参考入門
【入門】Docker Desktopとは何ができるの?インストールと使い方
【入門】Docker Composeとは?インストールと使い方
投稿一覧
- Ubuntuインストールubuntu入手 「Microsoft Store」を起動し、検索窓に「Ubuntu」を入力し表示されたUbu…
- WSL Integrationを有効化必要条件 Windows 10 バージョン2004以上またはWindows 11以上 WSLでLinuxディス…
- WSL 内容WSL Integrationを使用するには、Linuxディストリビューション(例: Ubuntu)が必要です…
- WSL2インストールDockerインストール後、WSL update failed PowerShellから「wsl –…
- Docker インストールDockerダウンロード 以下のサイトから パソコンにインストールする場合は、基本的にはAMDを選択してくださ…
- Synology NAS Redmine Docker【Synology NAS】DockerでRedmineを起動しローカルgit連携
- Docker参考ローカル環境でdockerを使用しlaravelを動かすまで docker composeとVSCodeでJa…
- Docker Install 4.9.0ダウンロード先 インストール ダウンロードしたファイルを管理者モードで実行する 再起動後 しばらくすると以下の…
- Docker installDocker Desktop ダウンロード 以下から Docker Desktop をダウンロード 対応するO…
- Laravel DockerWindowsで始めるDockerインストール(公式) DockerとLaravelを使って開発してみよう L…
- AWS ECS ECRECS Dcokerコンテナを簡単に使う仕組み ECR Gitみたなもの LambdaとFargate 色々と…
- AWS FARGATEサーバー無しでコンテナを動かす サーバー有り無しイメージ サーバー有りのEC2とサーバー無しのFargateの…
- Dockerdocker-compose ローカル開発環境 ECS Beanstalk EKS AWSで使う場合 ドキュメ…