🐋

UbuntuでDockerを使おうとしたらdocker composeが動かなくて詰まった(解決済)

に公開

環境
OS: Ubuntu 24.04.4 LTS

やろうとしたこと
Discord botのテストに使用するために、RustFSをDockerで動かそうとした。

経緯
構成をdocker-compose.dev.ymlに記述してdocker compose up -d -f docker-compose.dev.yml rustfs_for_testを実行したところ、そもそもDockerが入っておらず失敗。

$ docker compose -f docker-compose.dev.yml up -d rustfs_for_test
Command 'docker' not found, but can be installed with:
sudo snap install docker         # version 28.4.0, or
sudo apt  install docker.io      # version 29.1.3-0ubuntu3~24.04.1
sudo apt  install podman-docker  # version 4.9.3+ds1-1ubuntu0.2
See 'snap info docker' for additional versions.

出力に従い、aptでdocker.ioをインストールした。

$ sudo apt  install docker.io 

dockerインストール終了後にもう一度起動を試したところ以下のようにエラーが出力された。

$ docker compose -f docker-compose.dev.yml up -d rustfs_for_test
unknown shorthand flag: 'f' in -f

Usage:  docker [OPTIONS] COMMAND [ARG...]

docker compose versionも実行してみて、docker composeが正しく認識されていないことを確認した。
一旦apt経由でインストールしたパッケージをremoveした。

Docker公式サイトに記載のインストール手順に従い、Dockerのリポジトリからaptで必要なパッケージをインストールした。
参考: https://docs.docker.com/engine/install/ubuntu/

以下は公式サイトの内容。


  1. Dockerのaptリポジトリを設定
# Add Docker's official GPG key:
sudo apt update
sudo apt install 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

# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
  1. Dockerパッケージをインストール
 sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

以上の手順でdockerをインストールしたところdocker composeの動作確認に成功した。

$ docker compose version
Docker Compose version v5.1.3

docker composeを実行したところ先ほどとは別のエラーが発生した。
権限の問題でdocker APIへの接続に失敗。

$ docker compose -f docker-compose.yml up -d rustfs_for_test

unable to get image 'discord-bot-rustfs_for_test': permission denied while trying to connect to the docker API at unix:///var/run/docker.sock

この問題はユーザをdockerグループに追加することで解決。

$ sudo usermod -aG docker "$USER"
$ newgrp docker

ユーザのグループ追加を行った後にdockerの動作を確認すると、Docker daemonに接続できなかった。

$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

確認したところDockerのサービスが立ち上がっていなかったのでsystemctl startでこれを起動。

$ sudo systemctl status docker
× docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Sat 2026-05-02 17:39:12 JST; 1min 50s ago
     ...
$ sudo systemctl start docker
$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

この後docker composeによる起動にも無事成功した。

Discussion