1 回答

TA貢獻1780條經(jīng)驗 獲得超4個贊
簡短回答:
將映射到 /var/lib/mysql 的數(shù)據(jù)卷重命名,即將 mysql_data 重命名為 db_data 并docker-compose up
再次運行。
長答案:
我最終想通了這個問題。MariaDB的 docker hub頁面稍微涉及這樣一個事實,即只有在第一次創(chuàng)建容器時,它才會使用 /docker-entrypoint-initdb.d 中可用的數(shù)據(jù)庫模式進行初始化。
當(dāng)容器第一次啟動時,將使用提供的配置變量創(chuàng)建和初始化具有指定名稱的新數(shù)據(jù)庫。此外,它將執(zhí)行在 /docker-entrypoint-initdb.d 中找到的擴展名為 .sh、.sql 和 .sql.gz 的文件。文件將按字母順序執(zhí)行。您可以通過將 SQL 轉(zhuǎn)儲裝載到該目錄中并提供帶有貢獻數(shù)據(jù)的自定義圖像來輕松填充您的 mariadb 服務(wù)。默認(rèn)情況下,SQL 文件將導(dǎo)入由 MYSQL_DATABASE 變量指定的數(shù)據(jù)庫。
這導(dǎo)致我在 docker-compose 中更改 db 服務(wù)名稱并重新運行,這不起作用。我還使用 刪除了所有停止的容器docker container prune
,這也無濟于事。
最后,我認(rèn)為我所有的docker-compose up
s中一定有一些不變的東西,這與服務(wù)名稱無關(guān)。它是 docker-compose.yml 中的 mysql_data 卷容器。它似乎是一個在您重新部署時不會重新創(chuàng)建的數(shù)據(jù)層,在我的情況下,它在我第一次運行時初始化錯誤,可能是因為我沒有提供環(huán)境變量。因此,我將名稱更改為 db_data 并docker-compose up
再次執(zhí)行了中提琴!這次數(shù)據(jù)庫被初始化,我能夠訪問我在初始化時在模式文件中引入容器的數(shù)據(jù)庫表。
- 1 回答
- 0 關(guān)注
- 286 瀏覽
添加回答
舉報