嘗試將SQL 轉儲匯入MySQL 容器並隨後將容器作為新映像提交時,使用者可能會遇到使用新映像啟動容器時資料庫不保留新建立的資料的問題。本文調查了根本原因並提供了解決此問題的解決方案。
官方 MySQL Docker 映像將資料儲存在磁碟區中。這是一個理想的設置,可以確保資料在容器的生命週期之外持續存在。但是,資料卷繞過聯合檔案系統,並且不包含在映像提交過程中。因此,在容器運行時添加到資料庫的資料不會反映在提交的鏡像中。
要克服此限制並提交新添加的數據,用戶可以創建自己的 MySQL 庫沒有數據量的圖像。這涉及建立一個自訂映像,其中包含必要的軟體和配置,但不包括任何磁碟區掛載點。
FROM mysql:latest RUN apt-get update && apt-get install -y mysql-client
mysql -uroot -psecret -e 'create database <database_name>;' mysql -uroot -psecret <database_name> < /mnt/<sql_dump_file>.sql
docker commit -m "Imported <database_name> SQL dump" <container_id> <new_image_name>:<version>
以上是將容器作為鏡像提交時如何保留MySQL資料庫資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!