2015-05-05 93 views
5

我試圖訪問這是寫在文件裏面mylogfile.log應用程序的目錄我Node.js應用程序的日誌。 使用find/-type f -name mylogfile.log我能看到這樣的輸出:dokku - 哪裏是我的應用程序的目錄

/var/lib/docker/aufs/diff/0303e86afdc58e13b5afcc07ea3694e0e9e6d5e5cf8530a0854a76fbe2baf574/app/mylogfile.log 
/var/lib/docker/aufs/diff/a9a0dab44456acd8b43915ed686c282b778ab99df31f62076082e121274ef6e2/app/mylogfile.log 
/var/lib/docker/aufs/mnt/0303e86afdc58e13b5afcc07ea3694e0e9e6d5e5cf8530a0854a76fbe2baf574/app/mylogfile.log 

什麼是這些目錄(如果這是一個以前的應用推動,爲什麼我更需要他們,我真的不希望洪水硬盤驅動器的空間他們),其中哪些是我目前正在運行的應用程序的目錄?

同樣在...mnt/...diff/之內還有更多的文件夾具有類似的神祕名稱。

回答

5

請注意,Docker容器的文件系統是,主機不打算讓用戶訪問該文件系統。它實際上相當複雜,因爲碼頭工人使用分層寫入時複製文件系統(如你的情況AUFS,但這是特定發行;除了Ubuntu的大多數發行版使用Devicemapper代替AUFS,IIRC)。你看到的是文件系統層,每個包含一個父層的差異。

如果要登錄您的應用程序容器內的東西,你應該考慮以下可能性之一:

  1. 把你的日誌文件爲。您可以將主機目錄掛載爲卷並在其中寫入文件。您需要指定坐騎創建的貨櫃時,使用-v標誌(-v <host-directory>:<dir in container>):

    docker run -v /var/log/myapplication:/path/to/app/in/container myimage 
    
  2. 寫您的日誌標準輸出,讓泊塢擔心日誌。您可以訪問日誌(是的,這將是一個大文件)使用

    docker logs <container-name> 
    

    你還會發現在你的泊塢運行目錄(通常/var/lib/docker)日誌文件中/var/lib/docker/containers/<container-id>/<container-id>-json.log。該日誌文件不會自動旋轉,因此它可能會變大。

  3. 使用外部日誌服務日誌數據寫入到網絡中的其他位置。典型的候選人將是syslog(老派)或設立類似LogstashGraylog

+0

哇,還有更多,比我想象的,我發現這個日誌,但現在我關心它的大小,我沒有手動部署碼頭集裝箱,即時通訊使用dokker,所以我能做些什麼來旋轉它們或限制它們的大小,是否有任何內建的工具?我在Google上搜索,但沒有成功。我真的不想通過在那裏安裝logstash容器來加載我的VPS ...... –

+0

如果我理解正確,那麼您是在控制容器內的應用程序,對嗎?只需將您的日誌文件不寫入應用程序目錄,而是寫入以* volume *創建的單獨目錄中。這可以是一個掛載主機目錄(然後你可以在主機上登錄);或者,您可以將您的卷裝載到*另一個*容器中並在此處進行旋轉。你也可以在你的容器中加載'/ dev/log',並使用syslog登錄主機的syslog(沒有試過,但應該可以)。 – helmbert

+0

是的,我在控制應用程序,但不控制deplyment本身(由dokku自動生成),也許我只是誤解了你,iam不是那麼熟悉unix。我不完全瞭解什麼是數量(只是一些谷歌搜索的問題),但我擔心,雖然我不是手動創建一個容器,我無法設置坐騎。我可以使用docker手動創建容器,但它不在dokku的範圍內,並且可以(我想)可能與它衝突。並儘快,因爲我會推動應用程序再次使用dokku - 一切將被覆蓋 –

3

@helmberts答案是偉大的,給你所有你需要,我儘量給鹽一點點的菜(有什麼東西dokku-不是泊塢窗特有)。

的一點是,你的應用程序住在一個可恢復開關環境。通過部署(git push),您可以創建一個安裝程序,每次啓動應用程序後,您創建一個克隆,一旦停止容器(種類)就會死亡。

你可以做dokku run myapp ls /,看看它的樣子。 你可以進行更改(dokku run myapp touch /mytouched.file)但這些都是不持久(dokku run爲您提供了一個新的克隆!)和「迷失」馬上。如果您想永久保存文件,請使用並將其安裝到您的應用程序容器中。有一個很酷的plugin (dokku-volume)

我不能告訴你如何刪除舊的差異。

+0

感謝這一點的「鹽」,並指出這真棒插件=) –

相關問題