https://docs.docker.com/engine/install/ubuntu/
# #2023/11/10
```bash
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
```
```bash
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
```
> [!caution]
> [[curl]]のインストールでエラーになる場合は、[[📝Ubuntu 22.04にcurlをインストールするとlibnghttp2-14の存在しないバージョンを要求されてエラーになる]] も参考に。
```bash
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
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
```
[[Docker]]に関するものをインストール。
```console
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
動作確認。
```console
sudo docker run hello-world
```
# #2021/05/27
```bash
# 既存のDockerをアンインストール
$ sudo apt-get remove docker docker-engine docker.io containerd runc
# 必要なものをインストール
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release \
cgroupfs-mount
# リポジトリ登録
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Dockerのインストール
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
# Dockerの起動
$ sudo service docker start
# Dockerの動作確認
$ sudo docker run hello-world
# rootユーザ以外でも実行できるようにする
$ sudo cgroupfs-mount
$ sudo usermod -aG docker $USER
# ログインしなおして動作確認
$ sudo docker run hello-world
```