この変更が意味すること
Docker v29.5.2は、docker cpコマンドに関するバグを修正したパッチリリースです。
コンテナがバインドマウントを持ち、そのターゲットがコンテナ内のシンボリックリンクを経由している場合(例: /var/run -> /run)、docker cp実行時にmkdirat: file existsというエラーが発生していました。この問題はシンボリックリンクのターゲットを正しく解決できないことが原因でした。
Linuxコンテナでは/var/runが/runへのシンボリックリンクになっているケースが多いため、この構成でDockerを利用しているユーザーは影響を受ける可能性があります。
主な変更点
docker cpのシンボリックリンク経由バインドマウント対応
コンテナ内にシンボリックリンクを経由するバインドマウントのターゲット(例: /var/run -> /run)がある場合にdocker cpがmkdirat: file existsエラーで失敗していた問題を修正しました。
- 修正PR: moby/moby#52655
EOL / サポート状況
| サイクル | 最新バージョン | ステータス |
|---|---|---|
| 29 | 29.5.2 | ✅ Active |
| 28 | 28.5.2 | ✅ Active |
| 27 | 27.5.1 | ❌ EOL (2025-05-03) |
| 26.1 | 26.1.5 | ❌ EOL (2025-02-17) |
開発者への影響
docker cpを使用し、コンテナ内にシンボリックリンク経由のバインドマウントがあるプロジェクト: 本修正の直接の対象です。特に/var/run -> /runの構成で問題が発生していた場合に有効です。- CI/CDパイプラインで
docker cpを利用している: 稀なケースですが、上記の構成であれば影響を受ける可能性があります。 docker cpを使用しないプロジェクト: 影響なし。
アップデート方法
# Linux (apt)
sudo apt-get update && sudo apt-get install docker-ce=5:29.5.2-1~ubuntu.$(lsb_release -cs)
# macOS (Docker Desktop)
# Docker Desktop の設定から最新版に更新
# 公式インストールガイドを参照
# https://docs.docker.com/engine/install/
データソース: GitHub Releases API, endoflife.date
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
