簡體   English   中英

Docker 鏡像掛載nexus的現有數據卷

[英]Docker image mounting the existing data volume for nexus

  1. 我在 nexus 3.17 上添加了新的存儲庫。 沒有數據,只有回購。
  2. 創建的.bak 文件
  3. 為 nexus 創建了一個 docker 圖像(稱為 newimage)。

我在一個卷上有來自當前版本(3.3.1)的數據,我希望數據顯示在新的關系中。 當我嘗試在 docker 運行命令和 go 下連接到 nexus 時,沒有顯示新的存儲庫,但舊存儲庫的數據在那里。

docker run -d -p 8081:8081 --name nexus -v <local-docker-volume>:/nexus-data newimage

我用來創建圖像的 Dockerfile

FROM sonatype/nexus3:3.17.0  
COPY path-to-bak-files/*.bak /nexus-data/restore-from-backup/

知道我做錯了什么嗎?

ps:如果我不清楚,請告訴我。

根據您的 dockerfile 您正在將內容復制到/nexus-data/restore-from-backup/但是在運行容器時,您將現有卷安裝在/nexus-data上,這最終掩蓋了文件系統上的/nexus-data目錄在容器內(在創建圖像時添加數據的地方)。

掛載操作中需要注意的重要一點是,如果您在文件系統 (FS) 的現有目錄上掛載另一個磁盤/共享(在本例中為卷),則無法再從 FS 訪問該目錄。 因此,當您創建 docker 映像時,您向 /nexus-data/restore-from-backup/ 添加了一些文件,但是當您在 /nexus-data 上安裝卷時,您將其安裝在 FS 中的 dir 上,因此您看不到文件現在從你的FS。

要解決此問題,您可以執行以下操作:

  • 將數據添加到 dockerfile 中的不同位置,例如location1
  • 像您當前所做的那樣創建帶有卷掛載的容器
  • 使用 entrypoint OR 命令將文件從location1復制到/nexus-data/restore-from-backup/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM