コンテンツにスキップ

Ubuntu に Docker をインストールする

インストールする

Install Docker Engine on Ubuntu | Docker Docs

apt リポジトリを追加する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ 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 をインストールする。

1
$ sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

コンテナを起動してみる。

1
$ sudo docker run hello-world

sudo なしで Docker を使えるようにする

以下の手順で sudo なしで Docker を使うことができる。セキュリティがゆるくなるので、スタンドアロン環境での運用や一時的な実験向けである。

Docker デーモンは通常 root 権限で実行されており Docker ソケット(/var/run/docker.sock)にアクセスすることでコンテナの操作を行う。

デフォルトではこのソケットファイルは docker グループのメンバーに対して読み書き可能になっている。 このため、デフォルトでは Docker を実行する際は sudo が必要となる。

sudo を書かずに Docker を実行したい場合はユーザーを docker グループに所属させることになる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# dockerというグループが作成されていることを確認する(何かしら行が出てこればdockerグループが作成されている)
$ cat /etc/group | grep docker

# 自身が所属しているグループを確認する(dockerという文字列が入っていないはず)
$ groups $USER

# 自身をdockerグループに追加する
$ sudo usermod -aG docker $USER

# 再起動する
$ sudo reboot

# sudoなしでコンテナを起動してみる
$ docker run hello-world

アンインストールする

Install Docker Engine on Ubuntu | Docker Docs

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# パッケージをアンインストールする
$ 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

# dockerのユーザー設定を削除する
$ rm -rf ~/.docker