2017-06-19 96 views
1

我試圖將存儲卷安裝到容器內部。比如linux我給下面的命令碼頭集裝箱到NAS存儲

**mount 10.#.##.###:/nvol1 /tmp** 

這給了「拒絕訪問」錯誤,我已經添加了集裝箱和主機IP存儲,允許從容器&主機服務器的流量。但我無法在容器中安裝存儲卷?我錯過了什麼嗎?我正在使用Centos操作系統。

編輯注:我已經成功安裝存儲到主機泊塢窗和取得的主機文件系統和容器之間的通信。然而,這個新的測試案例尋求直接將容器上的存儲卷安裝在不在Docker主機上。

回答

1

您將無法從容器內不解除一些泊塢窗提供了隔離(否則不受信任的應用程序可以安裝在主機根文件系統和逃逸)的運行mount命令。 Docker通過從容器內的根用戶刪除各種功能來防止這種情況發生。

對於NFS掛載,您通常會安裝這個作爲卷放入容器中的兩種方法之一:

  1. 安裝在主機上的NFS目錄,主機目錄映射到容器中。這允許您除了在容器內外直接在主機上管理卷。

  2. 將NFS目錄作爲卷直接掛載到容器中。

對於第二種情況,可以定義體積的東西,如:

$ docker volume create --driver local \ 
    --opt type=nfs \ 
    --opt o=addr=10.1.23.123,rw \ 
    --opt device=:/nvol1 \ 
    nvol1 

$ docker run -v nvol1:/tmp your_image 

編輯:跳過docker volume create步驟中,您可以用--mount選項從運行命令這樣做:

$ docker run -it --rm \ 
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,volume-opt=o=addr=192.168.1.1,volume-opt=device=:/host/path \ 
    foo 
+0

在Docker文件中添加給定格式後,它會在構建bash-4.2#docker build時引發錯誤。 發送建立上下文多克爾守護39.42 KB 步驟1:泊塢 未知指令:泊塢 的bash-4.2#更Dockerfile 搬運工卷創建--driver本地\ --opt類型= NFS \ --opt O = 。ADDR = 10#### ###:。/ xbbl7nvol1,RW \ --opt設備=:/ TMP \ nvol1 – Satte

+0

那些是外殼命令,而不是用於Dockerfile條目。在構建時你將無法做到這一點。請更新您的問題,確切地說您正在嘗試做什麼,您正在運行的命令以及您正在使用的文件。 – BMitch

+0

我已更新問題。 – Satte