1. 程式人生 > >Compose 中如掛載在已經建立成功的docker volume

Compose 中如掛載在已經建立成功的docker volume

先上程式碼

version: "3.2"

services:
 jenkins:
  image: jenkins/jenkins:lts
  ports:
   - "8080:8080"
   - "50000:50000"
  volumes:
   - "jenkins_home:/var/jenkins_home"
volumes:
 jenkins_home:

網上中說紛紜,有兩種比較被接受的錯誤說法:

一種是在在jenkins_home前面加./ 這種方法其實會在compose file 當前目錄下新建一個 docker volume. 

另一種是就像我上面寫的這樣,這個其實是在/var/lib/docker/volumes/<專案名稱>_jenkins_home. 也是新建了一個docker volume. 

目前還沒有比較好的辦法, 

workaround

  1. 是將你原來的docker 重新命名為<專案名稱>_jenkins_home 格式
  2. 找到你的docker volume在本地路徑,然後將這個路徑當做本地檔案掛在上去

這個是無法避免的 因為docker-compose一定會帶一個專案名稱來建立一個新的voluem

如果你用-p 引數指定專案名,那麼每次更換都會新建一個docker volume