開発環境とインフラ基礎(Linux・Docker) / 約25分
Dockerfile・docker-composeの読み書き
なぜこれを学ぶか
Dockerfileの1行1行が読めれば、他人(やAI)が書いた環境構築コードのレビューができるようになります。
Dockerfileの主要命令: FROM(ベースイメージ指定)/ WORKDIR(作業ディレクトリ設定)/ COPY(ファイルをコンテナ内にコピー)/ RUN(ビルド時にコマンド実行)/ CMD(コンテナ起動時に実行するコマンド)。
docker build -t myapp .でイメージを作成し、docker run -p ホスト:コンテナ myappで起動します。-pのポートマッピングは「ホスト側の待受ポート:コンテナ内のポート」という対応関係を表します。
複数コンテナで構成するアプリはdocker-compose.ymlにまとめます。services:配下の各サービスにimage(使うイメージ)/ build(自前ビルド)/ ports(ポート)/ volumes(永続化)/ environment(環境変数)を書き、docker compose upで一括起動できます。
volumesはコンテナを削除してもデータを残すための仕組みです。コンテナ自体は使い捨てが基本のため、DBのデータなど残したい情報は必ずvolumeに置くのが実務での鉄則です。
重要ポイント
- FROM/WORKDIR/COPY/RUN/CMDの役割を説明できる
- ポートマッピング(ホスト:コンテナ)の意味を理解している
- docker-composeで複数コンテナ・volumesの必要性を説明できる
コーディング演習実際に書く
docker-composeの`ports`設定(`["8080:80", "5432:5432"]`のような文字列配列)を、`{ host, container }`オブジェクトの配列に変換する関数`parsePortMappings`を実装してください。
function parsePortMappings(ports)
スキルセルフチェック
このレッスンの内容をどの程度理解できましたか?