インストールする
apt リポジトリを追加する。
$ sudo apt update && \
sudo apt install -y ca-certificates curl && \
sudo install -m 0755 -d /etc/apt/keyrings && \
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
sudo chmod a+r /etc/apt/keyrings/docker.asc && \
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] 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 update
Docker をインストールする。
$ sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
コンテナを起動してみる。
$ sudo docker run hello-world
sudo なしで Docker を使えるようにする
以下の手順で sudo なしで Docker を使うことができる。セキュリティがゆるくなるので、スタンドアロン環境での運用や一時的な実験向けである。
Docker デーモンは通常 root 権限で実行されており Docker ソケット(/var/run/docker.sock)にアクセスすることでコンテナの操作を行う。
デフォルトではこのソケットファイルは docker グループのメンバーに対して読み書き可能になっている。
このため、デフォルトでは Docker を実行する際は sudo が必要となる。
sudo を書かずに Docker を実行したい場合はユーザーを docker グループに所属させることになる。
# dockerというグループが作成されていることを確認する(何かしら行が出てこればdockerグループが作成されている)
$ cat /etc/group | grep docker
# 自身が所属しているグループを確認する(dockerという文字列が入っていないはず)
$ groups $USER
# 自身をdockerグループに追加する
$ sudo usermod -aG docker $USER
# 再起動する
$ sudo reboot
# sudoなしでコンテナを起動してみる
$ docker run hello-world
アンインストールする
# パッケージをアンインストールする
$ sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# イメージ、コンテナ、ボリュームを削除する
$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd
# 自分をdockerグループから外す
$ sudo deluser $USER docker
# dockerグループを削除する
$ sudo groupdel docker