簡體   English   中英

Windows上的Docker工具箱卷不會刷新容器上的更改

[英]Docker toolbox volumes on windows doesn't refresh changes on container

我從Windows上的docker開始,我正在嘗試使用卷來管理容器中的數據。

我的主機環境是:

  • Windows 8.1
  • Docker Toolbox 1.8。
  • Virtual Box 5.0.6

我使用以下Dockerfile創建了一個ngnix映像。

Dockerfile

FROM centos:6.6

MAINTAINER afym

ENV WEBPORT 80

RUN yum -y update; yum clean all
RUN yum -y install epel-release; yum clean all
RUN yum -y install nginx; yum clean all
RUN echo "daemon off;" >> /etc/nginx/nginx.conf

VOLUME /usr/share/nginx/html

EXPOSE $WEBPORT

CMD [ "/usr/sbin/nginx" ]

我使用以下命令創建了一個ngnix容器。

docker run -d --name nge -v //c/Users/src:/usr/share/nginx/html -p 8082:80 ng1

b738fef9cc4d135416a8cca4caf869acf944319b7c3c61129b11f37f9d891598

然后我去我的瀏覽器,我可以看到網頁:

在此輸入圖像描述

但是,當我對index.html文件進行更改時,它不會在瀏覽器上刷新

編輯我的文件

在此輸入圖像描述

在我的瀏覽器上(ctrl + f5)

在此輸入圖像描述

我去VirtualBox機器檢查我的共享目錄選項是否正常。

在此輸入圖像描述

然后我用以下命令檢查我的nge容器。

docker inspect ng1

Docker檢查

在此輸入圖像描述

卷發生了什么? 為什么我看不到我的變化?

幾天后,我找到了解決方案。

Windows上的Firstable docker甚至在MAC上使用VirtualBox上的boot2docker實例。

在MAC上

在此輸入圖像描述

在Windows上

在此輸入圖像描述

接下來,官方碼頭工人的文檔說:

碼頭工人量

Docker Machine tries to auto-share your /Users (OS X) or C:\Users (Windows) directory

但是,在找到解決方案后,我決定將默認的c / Users更改為另一個路徑,僅用於保持訂單。 考慮到這一點,我做了以下步驟:

  • 定義您自己的工作區目錄。 在我的情況下是/ e / arquitectura (可選。如果你想你可以使用默認路徑,即/ c / Users
  • 驗證虛擬機上的配置(在默認計算機中轉至>配置>共享目錄

在此輸入圖像描述

  • 加入默認計算機並使用別名安裝目錄
sudo mount -t vboxsf alias-name-virtualbox  some-path-in-boot2docker

  # In my case (boot2docker instance)
  $ cd
  $ mkdir arquitectura
  $ sudo mount -t vboxsf arquitectura /arquitectura
  • 如果尚未更改c / user / path,最后創建一個新容器或重新啟動現有容器
# In my case (docker client)
$ docker run -d --name nge -v //arquitectura/src:/usr/share/nginx/html -p 8081:80 ng1

現在它有效。

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM