タイトル : Ubuntu22.04(2023/04) その5 Docker
更新日 : 2023-04-29
カテゴリ : プログラミング
タグ :
ubuntu   
docker   

インストールの前に

Ubuntuの標準パッケージでは、バージョンがかなり古いです

$ sudo apt info docker
Package: docker
Version: 1.5-2
...

このあたりのことは、Ubuntu 22.04 LTSへの最新版Dockerのインストール に書いてあります。

無償版のDockerは Docker-CE なので、docker-ce をインストールすることになります。

インストール

公式ドキュメント の通りですね。

sudo apt install ca-certificates gnupg lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

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 install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

あれ?動かない

postgres用のdocker-compose.yamlを書いて、起動しましょう。あれ?動かないです。(ちなみにdocker-compose-pluginなのでdocker"スペース"composeですね)

$ docker compose up -d
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/containers/json?
     all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Dpostgres%22%3Atrue%7D%7D": 
        dial unix /var/run/docker.sock: connect: permission denied

これも一番上で書いたインストールのページに説明がありました。一般ユーザーで実行したい場合、ユーザーをグループdockerに所属させないと行けませんでした。

$ getent group | grep docker
docker:x:999:
$ sudo usermod -aG docker $USER
$ getent group | grep docker
docker:x:999:ユーザー名

再起動します。(サービスをリスタートすれば良いんだろうけど)

ログインし直して、postgresが使えるようになりました。