このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Docker超入門:Docker ComposeでAmazon Linuxコンテナを構築する方法

🐋 Docker ComposeでAmazon Linuxコンテナを構築する方法

 ここでは、Docker Composeコマンド を使って Amazon Linuxコンテナ を構築する方法を紹介します。
 Amazon Linuxは、AWS(Amazon Web Services)が提供するクラウド向けのLinuxディストリビューションで、AWS環境に最適化されており、高い信頼性とセキュリティを備えています。

 Docker上でAmazon Linuxを扱うことで、AWS環境をローカルで再現しながら手軽に学習や開発を行うことができます。

ここで学ぶ内容

💡 Amazon Linuxとは?

Amazon Linux は、AWSが独自に開発しているLinuxディストリビューションです。
 クラウド上のアプリケーション開発・運用に特化しており、Amazon EC2 上で動作することを前提に最適化されています。

 内部的には Fedoraベース で構築されており、RHEL系ディストリビューションと似ていますが、Red Hat Enterprise Linux(RHEL)のクローンではありません。

URL:https://aws.amazon.com/jp/amazon-linux-2/

項目内容
提供元Amazon Web Services(AWS)
ベースFedora(RHEL系の上流プロジェクト)
主な用途EC2環境での開発・運用・デプロイ
特徴セキュリティ更新の自動適用、AWS連携に最適化
公式サイトhttps://aws.amazon.com/jp/amazon-linux-2/

💬 ポイント
Amazon Linuxは、EC2インスタンスで利用されることが多いですが、Dockerコンテナでも動作します。
これにより、AWS環境に近いLinuxをローカルで試せる のが大きなメリットです。

🎓 学習環境としてのAmazon Linuxコンテナ

Amazon Linuxコンテナは、AWSの基盤技術に興味がある人にぴったりです。
「EC2上のLinux環境を自分のPCで再現したい」という目的に最適な選択肢といえます。

理由説明
AWS互換環境EC2に近い環境をローカルで再現可能
軽量構成最小限のパッケージで高速起動
Red Hat系操作DNF/YUMコマンドで学習しやすい。
安全な実験環境破壊しても簡単に再構築できる。

💬 ワンポイント
AWS CLIやPython boto3などをインストールすれば、AWS連携のテストもコンテナ内で可能です!

🧹 作業前のクリーンアップ

まずは、Docker環境を整理しておきましょう。
古いイメージや停止済みコンテナが残っていると、動作に影響を与える場合があります。

コマンド書式

docker system prune -a --volumes
オプション説明
-a未使用のイメージも含めて削除
--volumes未使用のボリュームも削除

このコマンドで、未使用のコンテナ・ネットワーク・ボリュームをまとめて削除できます。
実行時に「Are you sure you want to continue? [y/N]」と表示されたら、y を入力して進めましょう。

実行結果

PS C:\Users\joeac> docker system prune -a --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all anonymous volumes not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y

💬 補足
GUI操作に慣れている人は、Docker Desktopの「Clean / Purge」機能を使ってもOKです。

📁 compose.yamlファイルの作成

続いて、Docker Compose を使ってAmazon Linuxコンテナを作成していきます。

1.作業ディレクトリを準備

cd desktop/docker
mkdir amazonlinux
cd amazonlinux

実行結果

PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir amazonlinux

    Directory: C:\Users\joeac\Desktop\docker

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2025/10/13    21:37                amazonlinux

PS C:\Users\joeac\Desktop\docker> cd amazonlinux
PS C:\Users\joeac\Desktop\docker\amazonlinux>

2.VS Codeを起動

code compose.yaml

VS Codeが開いたら、次の内容を入力して保存します👇

🧾 compose.yamlの内容

services:
  amazonlinux:
    image: amazonlinux:latest
    container_name: amazonlinux_container
    tty: true
フィールド説明
servicesComposeファイルのメインセクション(サービス定義を開始)
amazonlinuxサービス名(任意)
image使用するDockerイメージ。ここでは amazonlinux:latest
container_nameコンテナの名前(ここでは amazonlinux_container)
tty仮想端末(TTY)を割り当ててコンテナを維持する設定

💡 ポイント
通常、コンテナは内部のプロセスが終了すると自動停止します。
しかし tty: true を設定することで、コンテナが常駐状態 になり、対話的操作が可能になります。

🚀 コンテナの作成と起動

compose.yamlを保存したら、Amazon Linuxコンテナを起動してみましょう。

コマンド書式

docker compose up -d
オプション説明
upcompose.yamlを元にコンテナを作成・起動
-dデタッチドモード(バックグラウンド実行)

実行結果

PS C:\Users\joeac\Desktop\docker\amazonlinux> docker compose up -d
[+] Running 2/2
 ✔ amazonlinux Pulled                                                9.0s
   ✔ fbd59a98b07e Pull complete                                      5.9s
[+] Running 2/2
 ✔ Network amazonlinux_default      Created                          0.1s
 ✔ Container amazonlinux_container  Started                          0.8s

このメッセージが出れば、Amazon Linuxコンテナが起動成功です!
Docker Desktopでも緑色の「Running」状態が確認できるはずです。

💻 Amazon Linuxコンテナに接続してみよう

起動したAmazon Linuxコンテナに入って、実際にコマンドを実行してみましょう。

コマンド書式

docker compose exec [options] [service] [command]
引数説明
optionsオプション(例:-uでユーザー指定)
servicecompose.yamlで定義したサービス名(今回は amazonlinux
commandコンテナ内で実行したいコマンド(例:bash, ls など)

例:コンテナ内のディレクトリ構成を確認

docker compose exec amazonlinux ls

実行結果

PS C:\Users\joeac\Desktop\docker\amazonlinux> docker compose exec amazonlinux ls
bin   dev  home  lib64  media  opt   root  sbin  sys  usr
boot  etc  lib   local  mnt    proc  run   srv   tmp  var

このようにディレクトリ一覧が表示されれば、コンテナに正常に接続できています✨
あとは自由に dnf install などを使って、Amazon Linux環境を操作してみましょう!

🧠 まとめ

Docker Composeを使えば、AWS向けのAmazon Linux環境も数行で構築できます。
これにより、AWS環境に依存せず、ローカルでの学習・検証・テストが可能になります。

ステップ内容
1️⃣docker system prune -a --volumes で環境を整理
2️⃣compose.yaml に amazonlinux:latest を記述
3️⃣docker compose up -d で起動
4️⃣docker compose exec amazonlinux bash で接続

💬 まとめポイント
Amazon Linuxコンテナは、AWS運用の練習や開発検証に最適。
Docker Composeを使えば、いつでも気軽に再構築できます。