Ubuntu20.04 LTSでWeb開発を行いたいので、Dockerをインストールしました。
今回行った手順は、Dockerのリポジトリをセットアップして、そこからインストールする方法です。
他にも方法はあるのですが、インストールやアップグレードが簡単なため、こちらの方法がお勧めです。
Dockerの古いバージョン(docker、docker.io、docker-engine)がインストールされている場合は、次のコマンドを実行しアンインストールしてください。
sudo apt-get remove docker docker-engine docker.io containerd runc
もし、Dockerがインストールされていない場合は、次のように表示されます。
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package docker-engine
ますは、Dockerリポジトリをセットアップします。
セットアップしたDockerリポジトリから、Dockerのインストールやアップグレードができるようになります。
最初にパッケージをインストールできるようにします。
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
次に、Docker公式の公式GPG鍵を追加します。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
最後にリポジトリをセットアップします。
次のコマンドでは安定版(stable)リポジトリをセットアップできます。
echo \
"deb [arch=$(dpkg --print-architecture) 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
※安定版の他に、最新版(nightly)、テスト版(test)があり、これらのリポジトリを追加したい場合は、上のコマンドのtableの文字に後に、nightlyやtestの文字を加えてください。
基本的には、安定版だけでよいと思います。
次のコマンドでDocker Engine、containerd、Docker Composeの最新版をインストールします。
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
インストールされたDockerのバージョンは、次のコマンドで確認できます。
docker -v
また、Docker Composeのバージョンは、次のコマンドで確認できます。
docker compose version
Dockerのインストールが終わったら、試しにdockerコマンドを実行してみます。
sudo docker images
インストール直後だと、次のように表示されると思います。
先ほどのコマンドをsudoなしで実行するとエラーが表示されてしまいます。
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json”: dial unix /var/run/docker.sock: connect: permission denied
このように、dockerコマンドの実行にはsudoが必要になります。
ただ、毎回sudoを入力するのはめんどくさいので、sudoを用いたくない場合は、dockerという Unix グループを生成してユーザーをそのグループに加えます。 以下のコマンドを実行すれば、sudoなしでdockerコマンドが使えるようになります。
sudo groupadd docker
sudo usermod -aG docker $USER
コマンド実行後、dockerグループに属していることを認識させるため、いったんUbuntuをログアウトして、再ログインしてください。再ログイン後に、sudoなしでdockerコマンドが実行できるようになります。
※再ログインしてもエラーが出る場合は、PCを再起動してみてください
docker images