# LinuxへのDockerインストール

本ページでは、さまざまなLinuxディストリビューションにDockerを手動でセットアップするための簡易インストール手順を示します。通常はゲートウェイのインストーラスクリプトによって自動的に処理されます。

## Amazon Linux 2

{% code overflow="wrap" %}

```bash
# amazon-linux-extras からDockerエンジンをインストール
sudo yum update -y
sudo amazon-linux-extras install -y docker

# Dockerを有効化して起動
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker

# Compose v2プラグインをインストールして `docker compose` を使用可能にする
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL "https://github.com/docker/compose/releases/download/v2.27.0/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 --version
docker compose version

# サービスを起動し、再起動時に自動起動するよう設定
sudo service docker start
sudo chkconfig docker on
```

{% endcode %}

***

## Amazon Linux 2023

{% code overflow="wrap" %}

```bash
# 必要なプラグインをインストール
sudo dnf -y install dnf-plugins-core

# Docker公式リポジトリを追加
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo sed -i 's|\$releasever|9|g' /etc/yum.repos.d/docker-ce.repo

# Docker CE、CLI、Containerd、Buildx、Composeプラグインをインストール
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Dockerを有効化して起動
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker

# 互換性のための起動コマンド
sudo service docker start
sudo chkconfig docker on

# インストールを確認
docker --version
docker compose version
```

{% endcode %}

***

## Debian

一般的に、Debianマシンにインストールされている既存のDockerやdocker-composeは削除し、Debianパッケージではなく公式のDockerパッケージをインストールすることが推奨されます。

既存のDockerを削除するコマンドは以下のとおりです。

{% hint style="danger" %}
既存のDockerのインストールファイル、イメージ、コンテナなどをすべて削除することになりますので、実行する前に完全に削除して問題がないことを確認してください。この操作によりすべて削除されます。
{% endhint %}

{% code overflow="wrap" lineNumbers="true" %}

```bash
sudo systemctl stop docker docker.socket containerd 2>/dev/null
sudo apt remove --purge -y docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin docker.io podman-docker runc
sudo apt remove docker-compose
sudo apt autoremove --purge -y
sudo rm -rf /var/lib/docker /var/lib/containerd /etc/docker
sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg
```

{% endcode %}

Dockerを削除した後は、デバイスを再起動することを推奨します。

```bash
sudo reboot
```

次に、以下のコマンドを使用して公式のDockerパッケージをインストールします。

{% code overflow="wrap" %}

```bash
# 1. 必要なパッケージをインストール
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release

# 2. DockerのGPGキーを追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 3. Dockerの公式リポジトリを追加
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. Docker CE、CLI、Containerd、Composeプラグインをインストール
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin

# 5. Dockerを有効化して起動
sudo systemctl enable --now docker

# 6. インストールを確認
docker --version
docker compose version

# sudoなしでdockerを実行できるように設定
sudo usermod -aG docker $USER
newgrp docker
```

{% endcode %}

***

## Ubuntu

```bash
# 必要なパッケージをインストール
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release

# DockerのGPGキーを追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Dockerの公式Ubuntuリポジトリを追加
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Docker CE、CLI、Containerd、Composeプラグインをインストール
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin

# Dockerを有効化して起動
sudo systemctl enable --now docker

# sudoなしでDockerを実行できるように設定
sudo usermod -aG docker $USER
newgrp docker

# インストールを確認
docker --version
docker compose version
```

## AWS上のRed Hat Enterprise Linux 10

```
# RHEL 10(AWS)にDocker EngineとCompose v2をインストール

# 1) OSを最新状態に更新し、最新カーネルで再起動
sudo dnf -y update
sudo reboot
```

再起動後

```
# 2) 実行中のカーネルに対応するカーネルモジュールがインストールされていることを確認
sudo dnf -y install "kernel-modules-$(uname -r)" "kernel-modules-extra-$(uname -r)"

# 3) Docker CEのリポジトリを追加
sudo dnf -y install yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

# 4) Docker Engine、containerd、Compose v2プラグインをインストール
sudo dnf -y install \
  docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

# 5) Dockerを有効化して起動
sudo systemctl enable --now docker

# 6) 非rootユーザーでDockerを使用できるように設定(任意)
sudo usermod -aG docker $USER
newgrp docker

# 7) 動作確認
docker --version
docker compose version
sudo docker ps
```
