Skip to content

Nuface Blog

隨意隨手記 Casual Notes

Menu
  • Home
  • About
  • Services
  • Blog
  • Contact
  • Privacy Policy
  • Login
Menu

Docker 映像檔跨機器搬移實務:是否需要一起複製底層 image?

Posted on 2025-11-052025-11-05 by Rico

在日常維運或開發中,我們常會在一台主機(例如 A 機器)上建立新的 Docker 映像檔(image),並想將它移轉到另一台主機(B 機器)使用。這時常見的疑問是:

若我在 A 機器上建立的映像 XX 是從 YY 映像衍生(FROM YY)而來,那我在複製時,是否需要把 YY 也一起複製到 B 機器?

結論先講:
👉 不需要另外拷貝 YY!


🔍 為什麼只要複製 XX 就夠?

Docker 映像是由多層(layer)組成的,XX 映像是以 YY 為基底延伸出的新層。
當你使用 docker save 將 XX 打包時,Docker 會自動包含它所依賴的所有父層(也就是 YY 的部分)。

因此,當你在另一台機器使用 docker load 匯入後,Docker 會自動還原整個映像層結構:

  • 若該機器已有部分相同的層,會自動跳過(去重處理)。
  • 若沒有,會一併匯入完整層。

💡 正確的搬移方法

方法一:使用 docker save / docker load(離線搬移)

# 在 A 機器上打包映像
docker save -o xx.tar XX:tag

# 傳送 xx.tar 到 B 機器後
docker load -i xx.tar

這樣 B 機器就會同時擁有:

  • XX 映像
  • 以及 XX 所依賴的所有父層(包含 YY)

方法二:透過私有或公有 Registry(線上搬移)

# 在 A 機器上
docker tag XX:tag my-registry.example.com/ns/xx:tag
docker push my-registry.example.com/ns/xx:tag

# 在 B 機器上
docker pull my-registry.example.com/ns/xx:tag

這樣 B 只會下載缺少的層,節省時間與頻寬,非常適合長期部署與同步。


⚠️ 常見錯誤與注意事項

  • ❌ 不要用 docker export / docker import
    這是針對「容器檔案系統」,不包含映像的層與歷史資訊。
  • ⚙️ 確認平台架構一致
    例如 linux/amd64 與 linux/arm64 之間不可直接通用。
    若要跨架構搬移,可使用: docker buildx build --platform linux/amd64,linux/arm64 ...
  • 📦 若想同時備份多個映像
    也可以一次打包: docker save YY:tag XX:tag -o both.tar

✅ 結論

在 Docker 中,映像的層會自動隨依賴關係一併打包或拉取。
因此:

只要拷貝或推送 XX 映像即可,底層的 YY 映像層會自動被包含或下載。


📘 延伸閱讀

  • Docker 官方文件:docker save
  • Docker 官方文件:docker load

Recent Posts

  • Postfix + Let’s Encrypt + BIND9 + DANE Fully Automated TLSA Update Guide
  • Postfix + Let’s Encrypt + BIND9 + DANE TLSA 指紋自動更新完整教學
  • Deploying DANE in Postfix
  • 如何在 Postfix 中部署 DANE
  • DANE: DNSSEC-Based TLS Protection

Recent Comments

  1. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on High Availability Architecture, Failover, GeoDNS, Monitoring, and Email Abuse Automation (SOAR)
  2. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on MariaDB + PostfixAdmin: The Core of Virtual Domain & Mailbox Management
  3. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Daily Operations, Monitoring, and Performance Tuning for an Enterprise Mail System
  4. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Final Chapter: Complete Troubleshooting Guide & Frequently Asked Questions (FAQ)
  5. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Network Architecture, DNS Configuration, TLS Design, and Postfix/Dovecot SNI Explained

Archives

  • December 2025
  • November 2025
  • October 2025

Categories

  • AI
  • Apache
  • Cybersecurity
  • Database
  • DNS
  • Docker
  • Fail2Ban
  • FileSystem
  • Firewall
  • Linux
  • LLM
  • Mail
  • N8N
  • OpenLdap
  • OPNsense
  • PHP
  • QoS
  • Samba
  • Switch
  • Virtualization
  • VPN
  • WordPress
© 2025 Nuface Blog | Powered by Superbs Personal Blog theme