🔖

ubuntu20.04にDockerとdocker-composeをインストールする

2021/07/03に公開

https://docs.docker.com/engine/install/ubuntu/
docker docs:UbuntuにDockerエンジンをインストールする

公式を見れは全て載ってます。

自分の動作のメモ。

1.apt更新。必要パッケージインストール。

古いバージョンがある場合はアンインストール。

$ sudo apt-get update
$ sudo apt-get remove docker docker-engine docker.io containerd runc

aptで更新して必要パッケージをインストール。

 $ sudo apt-get update
 $ sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg \
     lsb-release

自分のubuntu20.04環境ではapt-transport-https以外は入っていた。

2.Dockerの公式GPGキーを追加。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

GPGキーとは公開鍵のこと。apu-getやyumで入手するパッケージが正しい配布先のものかチェックするためにある。

詳しくは以下。

https://qiita.com/y518gaku/items/435838097c700bbe6d1b
Qiita:GPGについて学んだことを整理してみる

3.リポジトリを設定

arch - マシンのアーキテクチャを表示 - Linuxコマンド
uname -m と同じ
uname -a などで

アーキテクチャによってリポジトリは違うので注意。

$ arch
x86_64

$ 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

4.dockerをインストール

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ docker version

dockerをsudo無しで実行

$ getent group docker
docker:x:998:
$ sudo gpasswd -a lumin docker
Adding user lumin to group docker

アップデート

アンインストール

$ sudo apt-get purge docker-ce docker-ce-cli containerd.io

$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd

docker-composeをインストール

https://docs.docker.com/compose/install/
docker docs:LinuxにComposeをインストール

バージョンはgithubで確認できます。

https://github.com/docker/compose/releases
GitHub:/compose

curlでインストール

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose -v

アップデート

$ docker-compose migrate-to-labels

アンインストール

$ sudo rm /usr/local/bin/docker-compose

Discussion