2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker起動時に発生する`Failed to allocate manager object, freezing.`エラーを解決した方法

Posted at

はじめに

既存プロジェクトの環境構築を行なった際に、コンテナのビルド実行時にコンテナ内のログにエラーが出力されました。解決に時間がかかったため、自分が試した方法をまとめます。

スクリーンショット 2025-02-15 1.03.39.png

原因

csgroupにはv1とv2が存在しており、Dockerのv20.10以降ではcsgroup v2がデフォルトで設定されているようです。プロジェクトのDockerイメージは、CentOS 7をベースとした「Amazon Linux2」を使用していましたが、csgroup v2を使用するコンテナではCentOS 7を動かせないという情報を見つけました。

私の環境では、Docker v27.4.0を使用しており、csgroup v2であったことから今回のエラーが発生したと考えられます。

Dockerのシステム情報は docker info コマンドで確認できます。
※下記は自分のPC上で実行した結果であり、今回関連しているシステム情報のみを載せています

Server Version: 27.4.0
Cgroup Version: 2

csgroupは「Controlle Group」の略で、グループ化されたプロセスのリソース(CPUやメモリ等)に対して使用量の監視や制限等を行います。

解決方法① cgroupの設定を変更する

PCの settings-store.json ファイルを開き、cgroupの設定を書き換えます。

vi ~/Library/Group\ Containers/group.com.docker/settings-store.json

setting-store.jsonファイルの設定に以下を追記し、保存します。

setting-store.json
"DeprecatedCgroupv1": true

catコマンドで設定が追記されていることを確認できたらPCを再起動します。

cat ~/Library/Group\ Containers/group.com.docker/settings-store.json

csgroupをv2からv1に変更できたので、期待を込めてビルドしましたがエラーの内容は変わりませんでした。。。

解決方法② コンテナにcgroupをマウントする

上記の方法でエラーが解消しない場合、コンテナにcgroupがマウントされるように設定します。

docker-compose.yml
api:
    build: ./api
    volumes:
      ~略~
      - /sys/fs/cgroup:/sys/fs/cgroup #追記
    ports:
      - "8080:80"
    cap_add: 
      - SYS_ADMIN #追記
    environment:
      - container=docker #追記

cgroupの設定で「:ro (read only)」オプションを付けて実行すると 'read-only file system' エラーが発生するためオプションの設定はしません。

+ /sys/fs/cgroup:/sys/fs/cgroup
- /sys/fs/cgroup:/sys/fs/cgroup:ro 

再度ビルドを実行するとログのエラーが解消しました!

まとめ

今回の環境構築では、プロジェクトが想定しているDockerのシステム情報に、自分のDockerの設定を合わせることで解決できました。
プロジェクトで使用しているDockerイメージが古い場合は、エラーが出た際にDockerのバージョンが関係していないかという点にも考慮する必要があるなと思いました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?