匯出和匯入 Docker 容器檔案系統

可以將 Docker 容器的檔案系統內容儲存到 tarball 存檔檔案中。這在將容器檔案系統移動到不同主機的過程中非常有用,例如,如果資料庫容器有重要更改,則無法在其他位置複製這些更改。請注意,最好使用 docker run 命令或 docker-compose.yml 檔案從更新的映像建立一個全新的容器,而不是匯出和移動容器的檔案系統。Docker 的一部分功能是其建立影象和容器的宣告式風格的可審計性和責任性。通過使用 docker exportdocker import,由於在容器的檔案系統內部從其原始狀態進行的更改混淆,因此該功率被抑制。

docker export -o redis.tar redis

上面的命令將建立一個空影象,然後將 redis 容器的檔案系統匯出到這個空影象中。要從 tarball 存檔匯入,請使用:

docker import ./redis.tar redis-imported:3.0.7

此命令將建立 redis-imported:3.0.7 映像,從中可以建立容器。也可以在匯入時建立更改,以及設定提交訊息:

docker import -c="ENV DEBUG true" -m="enable debug mode" ./redis.tar redis-changed

可用於 -c 命令列選項的 Dockerfile 指令是 CMDENTRYPOINTENVEXPOSEONBUILDUSERVOLUMEWORKDIR