WindowsコンテナでMemory limit指定時に「The requested resource is in use.」で起動できない問題への対処方法
概要
WindowsイメージでMemory limit(-mオプション)を指定してコンテナを生成すると以下のエラーが発生することがあります。
docker run --rm -it -m 4G mcr.microsoft.com/windows:20H2 cmd
docker: Error response from daemon: hcsshim::CreateComputeSystem 58b22e8bf229bb443b5d5765e9523b4f77c10b4ccdfa0867877f8de7cf189532: The requested resource is in use.
-m 4G
を指定することで、Windowsコンテナへメモリ4Gを割り当ててコンテナを生成できますが、エラーが発生する場合と発生しない場合があり、エラーの原因が不明でした。事例などを調べても根本原因を突き止めることができませんでした。
一方、 -m 4G
を指定しない場合は正常にWindowsコンテナが生成できます。
ただし、この場合はメモリはデフォルトの1Gのみの割り当てとなります。
Microsoft Windows [Version 10.0.19042.985]
(c) Microsoft Corporation. All rights reserved.
C:\>systeminfo
...(略)...
Total Physical Memory: 1,023 MB
Available Physical Memory: 636 MB
Virtual Memory: Max Size: 2,751 MB
Virtual Memory: Available: 2,290 MB
Virtual Memory: In Use: 461 MB
...(略)...
Dockerの再起動やOSの再起動など、様々なことを試しても改善しませんでしたが、対処方法が見つかりましたので本記事にてご紹介します。
前提条件
- Windows 10 Pro 20H2 で Docker を利用している
- Docker Desktop for Windows 3.4.0 を利用している
- Windows containers モードを利用している
- mcr.microsoft.com/windows:20H2 イメージを利用している
対処方法
- Windowsのスタートメニューで
hyper-v
と入力して Hyper-V マネージャー
画面を起動します。
- 操作メニューから
Hyper-V の設定...
を開きます。
-
仮想マシンに物理NUMAノードをまたがるメモリを割り当てる
のチェックを解除してOKボタンで確定します。
- Windowsのスタートメニューで
service
と入力して サービス
画面を起動します。
- 以下のサービスを再起動します。
- Hyper-V Virtual Machine Management
- Hyper-V ホスト コンピューティング サービス
- WindowsイメージでMemory limit(-mオプション)を指定してコンテナの生成を試します。
docker run --rm -it -m 4G mcr.microsoft.com/windows:20H2 cmd
- Windowsのスタートメニューで
hyper-v
と入力してHyper-V マネージャー
画面を起動します。 - 操作メニューから
Hyper-V の設定...
を開きます。 -
仮想マシンに物理NUMAノードをまたがるメモリを割り当てる
のチェックを解除してOKボタンで確定します。 - Windowsのスタートメニューで
service
と入力してサービス
画面を起動します。 - 以下のサービスを再起動します。
- Hyper-V Virtual Machine Management
- Hyper-V ホスト コンピューティング サービス
- WindowsイメージでMemory limit(-mオプション)を指定してコンテナの生成を試します。
docker run --rm -it -m 4G mcr.microsoft.com/windows:20H2 cmd
Windowsコンテナへメモリ4Gを割り当ててコンテナが正しく生成されています。
Microsoft Windows [Version 10.0.19042.985]
(c) Microsoft Corporation. All rights reserved.
C:\>systeminfo
...(略)...
Total Physical Memory: 4,607 MB
Available Physical Memory: 4,163 MB
Virtual Memory: Max Size: 6,335 MB
Virtual Memory: Available: 5,847 MB
Virtual Memory: In Use: 488 MB
...(略)...
Author And Source
この問題について(WindowsコンテナでMemory limit指定時に「The requested resource is in use.」で起動できない問題への対処方法), 我々は、より多くの情報をここで見つけました https://qiita.com/Targityen/items/dd0d0f52dc0dad26ec57著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .