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/
以下は公式サイトの内容。
- 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
- 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