Skip to content

macOSで「Docker.appはコンピュータを損傷します」警告を解決

問題の原因

macOSでDockerを使用している際、以下の警告が表示される問題が発生します:

bash
"Docker.app" will damage your computer. You should move it to the Bin

この警告が表示される主な原因は:

  • Docker Inc.が証明書を失効させた(2025年1月時点の事例)
  • セキュリティソフト(Zscaler等)の影響
  • macOSのGatekeeperがDockerの署名を検証できない
  • `com.docker.vmnetd`関連の証明書問題
docker.app will damage your computer警告画面

効果的な解決方法

標準解決策: Dockerの完全再インストール

  1. Dockerを完全に停止:

    bash
    sudo pkill '[dD]ocker'
  2. 関連プロセスとファイルを削除:

    bash
    # ヘルパーツールを停止
    sudo launchctl bootout system /Library/LaunchDaemons/com.docker.vmnetd.plist
    sudo launchctl bootout system /Library/LaunchDaemons/com.docker.socket.plist
    
    # バイナリを削除
    sudo rm -f /Library/PrivilegedHelperTools/com.docker.vmnetd
    sudo rm -f /Library/PrivilegedHelperTools/com.docker.socket
  3. アプリ自体を削除:

    • Docker.appをゴミ箱に移動
    bash
    sudo rm -rf /Applications/Docker.app
  4. 公式サイトから最新版をダウンロード(4.37.2以上推奨):

    bash
    # Dockerダウンロード(公式)
    open "https://download.docker.com/mac/stable/Docker.dmg"
  5. 新しいDocker.appを/Applicationsにインストール

Homebrewユーザー向け解決法

bash
# Dockerの完全アンインストール
brew uninstall --cask docker --force
brew uninstall --formula docker --force

# 競合ファイルを手動で削除
sudo rm -f /usr/local/bin/docker*
sudo rm -f /opt/homebrew/etc/bash_completion.d/docker

# 新規インストール
brew update
brew install --cask docker

トラブルシューティング

「Dockerが破損しています」と表示される場合

bash
# 権限を修復
sudo xattr -d com.apple.quarantine /Applications/Docker.app

# 証明書の手動コピー
sudo cp /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd /Library/PrivilegedHelperTools/
sudo cp /Applications/Docker.app/Contents/MacOS/com.docker.socket /Library/PrivilegedHelperTools/

# Rosetta再インストール(Apple Siliconのみ)
softwareupdate --install-rosetta

証明書の有効性を確認

bash
# 証明書チェックスクリプト
curl -O https://gist.githubusercontent.com/user/check.sh/abcdef123456/raw/check.sh
chmod +x check.sh
./check.sh /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd

出力例:

bash
com.docker.vmnetd is signed with a correct certificate

出力が「revoked certificate」の場合、再インストールが必要です。

防止策

  • 定期的にDockerをアップデート
  • macOSのセキュリティ更新を適用
  • 証明書エラーが表示されたら即時対応
  • セキュリティソフトの例外設定にDockerを追加

補足情報

証明書問題はDocker側の対応後もOSキャッシュに残る場合があります。根本解決には完全再インストールが最も効果的です。作業前に重要なコンテナのバックアップを推奨します。