【问题标题】:Docker toolbox volumes on windows doesn't refresh changes on containerWindows 上的 Docker 工具箱卷不会刷新容器上的更改
【发布时间】:2016-01-25 22:15:38
【问题描述】:

我从 windows 上的 docker 开始,我正在尝试使用卷来管理容器中的数据。

我的宿主环境是:

  • Windows 8.1
  • Docker 工具箱 1.8.
  • 虚拟盒子 5.0.6

我使用以下 Dockerfile 创建了一个 ngnix 映像。

Dockerfile

来自centos:6.6 维护者 环境网络端口 80 运行 yum -y 更新;百胜清洁所有 运行 yum -y 安装 epel-release;百胜清洁所有 运行 yum -y 安装 nginx;百胜清洁所有 运行回声“守护进程关闭;” >> /etc/nginx/nginx.conf 卷 /usr/share/nginx/html 公开 $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 容器。

码头工人检查 ng1

Docker 检查

卷发生了什么?为什么我看不到我的更改?

【问题讨论】:

  • 我现在正在使用 docker cp 命令,我将文件管理为: docker cp /C/Users/src/index.html nge:/usr/share/nginx/html/index.html (当然你可以cp一个完整的目录)。如果有人找到了解决方案,那就太好了。

标签: docker boot2docker dockerfile dockerhub


【解决方案1】:

几天后我找到了解决办法。

Windows 上的第一个 docker 即使在 MAC 上也使用 VirtualBox 上的 boot2docker 实例。

图表

在 MAC 上

在 Windows 上

接下来,官方 docker 的文档说:

docker volume

Docker Machine 尝试自动共享您的 /Users (OS X) 或 C:\Users (Windows) 目录

但是,在找到解决方案后,我决定将默认的 c/Users 更改为另一条路径,以保持秩序。考虑到这一点,我做了以下步骤:

  • 定义您自己的工作区目录。在我的例子中是 /e/arquitectura(可选。如果你愿意,你可以使用默认路径,即 /c/Users
  • 验证虚拟机上的配置(在默认机器上转到 > 配置 > 共享目录

  • 加入默认机器并使用别名挂载目录
sudo mount -t vboxsf alias-name-virtualbox some-path-in-boot2docker # 在我的例子中(boot2docker 实例) $光盘 $ mkdir 架构 $ sudo mount -t vboxsf arquitectura /arquitectura
  • 如果您没有更改 c/user/ 路径,最后创建一个新容器或重新启动现有容器
# 在我的例子中(docker 客户端) $ docker run -d --name nge -v //arquitectura/src:/usr/share/nginx/html -p 8081:80 ng1

现在可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    相关资源
    最近更新 更多