2016-02-05 58 views
2

好吧,基本上我想創建一個符號鏈接「ln -s」從我的主機到我的容器。符號鏈接主機到碼頭集裝箱

綜上所述:該主機的主機文件夾.m2目錄必須有我的容器內的符號鏈接到文件夾的.m2,是這樣的:$ LN -s containerIp:/root/.m2 myContainerAlias

我已經看到下面的帖子,但他們沒有幫助我,因爲我不想將文件複製到我的本地主機。

Docker - copy file from container to host

Apache in Docker says: Symbolic link not allowed

https://omarabid.com/symlink-to-a-mounted-volume-in-docker/

編輯:

我發現這裏的另一個有價值的問題:

How to mount a directory in the docker container to the host? 謝謝...

回答

0

如果您想要在主機和容器之間共享數據,或者反之亦然,則需要使用docker volume

有很多方法可以做到這一點,但對於你的情況最簡單的就是mount a host directory as a data volume。這是通過docker標記-v完成的。例如,docker run -it -v /path/to/.m2:/root/.m2 ubuntu:latest /bin/bash將運行ubuntu:latest圖像,主機目錄/path/to/.m2'符號鏈接'到容器目錄/root/.m2

希望有所幫助。

+0

嗨JamesStewy,首先感謝您的回答... 嗯,我正在使用卷已經用於另一個目的,並且就我所關心的使用它而言,我需要讓我的主機中的文件將它們鏡像到容器中(請糾正我,如果我是worng請)。 此外,我真正想要的只是引用.m2目錄中的依賴關係文件,這是從我的主機執行的(沒有主機內部的依賴關係)。 – Bevilaqua

0

聽起來像你想優化在容器內運行的Maven構建?

docker run -it --rm -w /opt/maven \ 
    -v $PWD:/opt/maven \ 
    -v $HOME/.m2:/root/.m2 \ 
    maven:3.3-jdk-8 \ 
    mvn clean install 

+0

感謝您的回答Mark O'Connor,但我真正想要的是與此相反,我不想在主機中擁有.m2,只能在容器中(在構建時已經在DockerFIle中設置) ),並且這樣,所有其他將要使用該容器的開發人員將不必在自己的主機中下載這些文件。 – Bevilaqua

+0

@Bevilaqua默認情況下這是Maven的工作方式(罐子被緩存在「/root/.m2」下)。就我個人而言,我認爲使用容器內文件的開發人員之間共享罐子有點不靈活。另一種方法是運行一個Nexus實例,允許您爲組織內的所有開發人員在本地緩存罐子。請參閱以下示例http://stackoverflow.com/questions/27767264/how-to-dockerize-maven-project-and-how-many-ways-to-accomplish-it/27768965#27768965 –