我一直在玩docker一段時間。最近,我遇到了一個「錯誤」,我無法確定原因/原因。在vm中沒有得到真正的文件更新
我目前在Windows 8.1上安裝了docker工具箱,其中包括docker 1.8.2,docker-machine 0.4.1和virtualbox 5.0.4(這些都是重要的,大概是這樣)。我曾經是純粹的boot2docker。
我不確定發生了什麼事情,所以描述可能會模糊不清,如果您需要,請向我澄清。這裏我們去:
當我寫入位於共享文件夾中的一些文件時,vm只獲取文件長度更新,但不能獲取新內容。
讓我們用我的app.py爲例(我一直在玩瓶)
app.py:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from werkzeug.contrib.fixers import LighttpdCGIRootFix
import os
app = Flask(__name__)
app.config.from_object(os.getenv('APP_SETTINGS'))
app.wsgi_app = LighttpdCGIRootFix(app.wsgi_app)
db = SQLAlchemy(app)
@app.route('/')
def hello():
return "My bio!"
if __name__ == '__main__':
app.run(host='0.0.0.0')
,當我的貓是在VM:
現在,讓我們將其更新到下面,注意額外的驚歎號:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from werkzeug.contrib.fixers import LighttpdCGIRootFix
import os
app = Flask(__name__)
app.config.from_object(os.getenv('APP_SETTINGS'))
app.wsgi_app = LighttpdCGIRootFix(app.wsgi_app)
db = SQLAlchemy(app)
@app.route('/')
def hello():
return "My bio!!!!!!!"
if __name__ == '__main__':
app.run(host='0.0.0.0')
當我的貓一遍:
注意兩兩件事:
- 多餘的驚歎號是不是有
- 的EOF標誌移動,空格的數量,出現在EOF標誌前面,正是感嘆號的數量。
我懷疑操作系統不知何故拿起文件大小的變化,但未能挑選新的內容。當我從文件中刪除字符時,EOF標誌也會移動,並且貓的輸出將被我刪除的字符數刪除。
這不僅是cat
沒有拿起變化,vm中的所有程序都做。因此,當它發生時我無法開發任何東西。我所做的更改根本不會影響任何內容。我必須殺死虛擬機並重新啓動它才能獲得我所做的任何更改,但效率並不高。
任何幫助將不勝感激!感謝您閱讀長問題!
該屏幕截圖取自virtualbox boot2docker外殼,不在任何容器內。 – prM
我縮小到基本圖像。我嘗試了官方的python:2.7.10和python:3.4.3圖像,並且它們都能很好地工作(能夠拾取文件更改)。但是,在構建我自己的圖像時,我使用gliderlabs/alpine:3.2作爲我的基本圖像,以實現最小圖像大小。這樣做會帶來我上面描述的問題。 (在容器和boot2docker虛擬機相同的問題) – prM