2017-08-09 75 views
0

我使用的是docker 1.12和rancher服務器1.5.9。我試圖在牧場主中創建一個堆棧來部署和編排我的應用程序。我的問題是,我需要傳遞容器將運行的主機的主機名作爲env var如何將主機名作爲env var傳遞給牧場服務器

由於我只有一個圖像將用於在多個主機上創建一種容器(假設測試爲2),我無法像HOSTNAME=myhostname那樣通過它。該值需要爲將由docker主機設置的var

有沒有人知道如何做到與牧場服務器用戶界面? 有誰知道添加自定義主機時,牧場主如何檢索主機名?

我們可以使用入口點或CMD來做到這一點嗎?

回答

0

在機器上有一個/etc/hosts,它優先於localhost的所需名稱。顯然,也有一個/etc/hostname/etc/hosts一致。

我正在使用容器linux。所以對於我來說,在轉換到點火之前,它在ct-config中看起來如此。

storage: 
    files: 
    - filesystem: "root" 
     path:  "/etc/hostname" 
     mode:  0644 
     contents: 
     inline: ${hostname} 
    - filesystem: "root" 
     path:  "/etc/hosts" 
     mode:  0644 
     contents: 
     inline: "127.0.0.1 ${hostname} localhost\n 
       ::1 ${hostname} localhost" 

只要確保在運行牧場註冊行之前有上述內容。

sudo docker run --rm --privileged \ 
-v /var/run/docker.sock:/var/run/docker.sock \ 
-v /var/lib/rancher:/var/lib/rancher \ 
rancher/agent:v1.2.7 https://myrancher/v1/scripts/TOKEN