目次
- 1. はじめに
- 2. Gitのインストール
- 3. GitHubとのSSH接続設定
- 4. Docker(Engine)のインストール
- 5. sudo無しでDockerを使用できるように設定
- 6. Docker Composeのインストール
- 7. Docker buildxのインストール
- 8. まとめ
- 9. 参考資料
1. はじめに
EC2(Amazon Linux 2023)に「Git・Docker・Docker Compose・Docker Buildx」をインストールする作業に苦戦したため、手順をまとめてドキュメント化することとした。
「VPC, サブネット, EC2, NATゲートウェイ, ルートテーブル」等のAWS環境が既に構築され、EC2からインターネットに接続できる状態を前提とする。
2. Gitのインストール
EC2に接続し、Gitをインストールする。
Amazon Linux 2023では「Fedora」をベースにしたRHEL系のディストリビューションであるため、パッケージ管理コマンドは「dnf」(yumの後継)を使用する。
以下のコマンドでGitをインストールする。
sudo dnf -y update
sudo dnf install -y git
git version
「dnf repolist」コマンドでパッケージリポジトリを確認でき、EC2(Amazon Linux 2023)では、「Amazon Linux 2023 repository」がパッケージリポジトリとなる。
このリポジトリからパッケージをインストールすることとなり、パッケージの一覧はhttps://docs.aws.amazon.com/ja_jp/linux/al2023/release-notes/all-packages-AL2023.9.htmlから確認できる。
3. GitHubとのSSH接続設定
次にGitHubと接続するため、EC2内にsshキーを作成する。
EC2内に秘密鍵を保存し、公開鍵は自身のGitHubのSettingsにて設定する。
EC2
├─ SSH鍵(秘密鍵) 🔐
└─ 公開鍵 ───────▶ GitHub(SSH Keys)
以下のコマンドを叩き、sshキーを作成する。
-Cはコメント(comment)を付けるオプションであり、運用・識別のためのメタ情報のため、ここでは「ec2-github」とした。
ssh-keygen -t ed25519 -C "ec2-github"
コマンドを叩いた後に「Enter file in which to save the key (/home/ssm-user/.ssh/id_ed25519)」と表示され、エンターを押すと「/home/ssm-user/.ssh/id_ed25519」にsshキーが作成される。
そのため、以下のコマンドでsshキーが作成されているか確認する。
ls -la /home/ssm-user/.ssh/
今回はSSM(セッションマネージャー)を通じてEC2を操作しているため、ユーザー名は「ssm-user」となる。「id」コマンドを叩き、uidに表示されたものが現在のユーザー名となる。
「id_ed25519」、「id_ed25519.pub」が作成されていれば、sshキーの作成完了である。
秘密鍵は「id_ed25519」、公開鍵は「id_ed25519.pub」であるため、後者の公開鍵である「id_ed25519.pub」を自身のGitHubのSettingsに登録する。
以下のコマンドで公開鍵の中身を確認し、出力されたものをコピーする。
cat /home/ssm-user/.ssh/id_ed25519.pub
次にGitHubのSettingsの「SSH and GPG keys」にて、公開鍵を新規登録する。
Titleは「任意」、KeyTypeは「Authentication Key」(認証キー)、Keyは「先ほど出力されたもの」を登録する。
秘密鍵(id_ed25519)と公開鍵(id_ed25519.pub)を取り違えないように注意する。
次に以下のコマンドを叩き、SSH接続可能かどうか確認する。
ssh -T git@github.com
これでリモートリポジトリからclone, pull等を実行できるため、対象のリモートリポジトリから必要に応じて、sshでcloneを行う。
git clone <git@github.com:XXXXX>
clone後に、対象のリポジトリを確認し、必要に応じてリモート先を変更する。
git remote -v
git remote set-url origin <新しいURL>
4. Docker(Engine)のインストール
次にDocker(Engine)をインストールする。
Amazon Linux 2023のリポジトリ(https://docs.aws.amazon.com/ja_jp/linux/al2023/release-notes/all-packages-AL2023.9.html)を参照し「docker」で検索すると、「docker(Engine)」があり、これをインストールする。
sudo dnf -y install docker
docker version
sudo systemctl enable --now docker
5. sudo無しでDockerを使用できるように設定
sudo無しでdockerコマンドを実行するためには、dockerグループにユーザーを追加する。
dockerグループにユーザーを追加しない場合、root権限で操作することになるため、sudoが必要となる。
dockerグループが作成されているかどうか以下のコマンドで確認する。通常はdockerインストールにより、dockerグループが作成される。
getent group docker
dockerグループがない場合は、以下のコマンドで作成する。
sudo groupadd docker
EC2内のユーザーを確認する。
今回はssmで接続しており、ユーザーは「ssm-user」となるため、ssm-userをdockerグループに追加する。
以下のコマンドでユーザーを確認し、uidに表示されたユーザーをdockerグループに追加する。
id
sudo usermod -aG docker ssm-user
再び、以下のコマンドを叩き、ssm-userが追加されているかどうか確認する。
getent group docker
ssm-userが確認できれば、一度ssmの接続を中止し、再びssmで接続する。
入り直した後に、sudo無しでdockerコマンドが使用できる。
上記設定に関する公式ドキュメントは以下のとおりである。
https://docs.docker.com/engine/install/linux-postinstall/
6. Docker Composeのインストール
6.1 Docker Composeのインストールが別途必要な理由
このまま「docker compose」コマンドを使用しようとすると、composeが認識されずにエラーとなる。
おそらく、Amazon Linux 2023のパッケージリポジトリには「docker(Engine)」はあるものの、「docker compose」が含まれていないため、エラーになると考えられる。
そのため、Docker composeのGitHubリポジトリ(https://github.com/docker/compose/releases)より、docker composeのバージョンを指定して別途インストールする。
6.2 Docker EngineとComposeのバージョン互換性
インストールする前にEC2内の「docker(Engine)」のバージョンと互換性のある「docker compose」のバージョンを確認する。
EC内のdockerエンジンのバージョンは、Amazon Linux 2023のリポジトリ一覧(https://docs.aws.amazon.com/ja_jp/linux/al2023/release-notes/all-packages-AL2023.9.html)より、バージョンは「25.0.8-1」である。
Docker公式ドキュメントの以前のリリースノート(https://docs.docker.com/compose/releases/prior-releases/)より、「2.24.4」バージョンの依存関係のアップグレードに「Dependencies upgrade: bump docker to 25.0.1(依存関係のアップグレード: docker を 25.0.1 にアップグレード)」と記載がある。
これは、「内部依存ライブラリのアップグレード記載」であり、「必須の Engine バージョン要件」という意味ではないが、実運用で不整合が出るリスクを想定し、内部依存ライブラリのアップグレード記載と直近のバージョンをインストールする。
よって、docker composeのバージョンは、EC2内のDocker Engineのバージョン(25.0.8-1)に対し、直近の依存ライブラリのアップグレードバージョン(25.0.1)がある「2.24.4」とする。
以下に、docker, docker composeのバージョンを整理する。
| 種類 | バージョン | 備考 |
|---|---|---|
| docker | 25.0.8-1 | Amazon Linux 2023 パッケージリポジトリ一覧のバージョンより |
| docker compose | 2.24.4 | 直近の依存ライブラリのアップグレードバージョン(25.0.1)を基に選定 |
「内部依存ライブラリのアップグレード記載と直近のバージョンをインストールする」という考え方は、私個人の考え方ですので、この点に留意してバージョン選定を行ってください。
6.3 OS・アーキテクチャの確認
docker composeのGitHubリポジトリ「v2.24.4」のAssetsを確認すると、OS、アーキテクチャに応じてインストールするものが決まるため、EC2のOS、アーキテクチャを確認する。
uname と uname -mとコマンドを叩くと「Linux」、「X86_64」が表示される。
よってAssetsより、「Linux」, 「X86_64」に合致するものをインストールする。
uname
uname -m
該当のパッケージ名は「docker-compose-linux-x86_64」となる。
6.4 Docker Composeのインストール手順
以下のとおり、docker composeのインストール手順を示す。
- ①ダウンロードするディレクトリを作成
- ②curlコマンドでダウンロード
- ③実行権限を付与
- ④バージョン確認
sudo mkdir -p /usr/local/lib/docker/cli-plugins/
sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.4/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
docker compose version
7. Docker buildxのインストール
docker composeをインストールし、「docker compose up --build」コマンドを叩くと、docker buildxのバージョンが古く、エラーとなる場合がある。
そのため、docker buildxのインストールも必要に応じて行う。
7.1 Docker Engineとのバージョン要件
docker buildxのGitHubリポジトリ(https://github.com/docker/buildx)より、Linuxでの保存先は「$HOME/.docker/cli-plugins」が推奨されている。
よって、mkdir -p ~/.docker/cli-pluginsとして保存ディレクトリを作成する。
また、「DockerでBuildxを使用するには、Dockerエンジン19.03以降が必要。(Using Buildx with Docker requires Docker engine 19.03 or newer.)」と記載がある。
dockerのバージョンは「25.0.8-1」であり、19.03以上であるため、バージョンの問題はないと考えられる。
7.2 Docker buildxのインストールバージョン、OS・アーキテクチャ
buildxの最新バージョンはv0.30.1(2025/12月時点)であり、こちらをインストールする。
前述の通り、EC2のOS、アーキテクチャは「Linux」、「X86_64」であるため、これと同じ種類を選択する。
x86_64は見当たらないが、別名の「amd64」(=x86_64)はあるため、これをインストールする。
該当のパッケージ名は「buildx-v0.30.1.linux-amd64」である。
7.3 Docker buildxのインストール手順
インストール手順は以下のとおりである。
mkdir -p ~/.docker/cli-plugins
curl -SL https://github.com/docker/buildx/releases/download/v0.30.1/buildx-v0.30.1.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx
chmod +x ~/.docker/cli-plugins/docker-buildx
docker buildx version
8. まとめ
ここまでEC2(Amazon Linux 2023)内に「Git・Docker・Docker Compose・Docker Buildx」をインストールする手順をまとめました。
個人的に時間がかかった作業でしたので、この記事が少しでも参考になれば幸いです。
9. 参考資料
- Amazon Linux 2023のリポジトリ一覧
https://docs.aws.amazon.com/ja_jp/linux/al2023/release-notes/all-packages-AL2023.9.html - dockerをsudo無しで操作する方法
https://docs.docker.com/engine/install/linux-postinstall/ - docker engine / docker composeのインストール
https://sig9.org/blog/2023/08/28/ - docker composeのGitHubリポジトリ
https://github.com/docker/compose/releases - docker buildxのGitHubリポジトリ
https://github.com/docker/buildx - Docker公式ドキュメントのリリースノート
https://docs.docker.com/compose/releases/prior-releases/







