在Windows上使用Kitematic并启动容器hello-world-nginx。我完全能够在Windows上编辑文件,并在浏览器中查看修改。
但是当我创建一些图像并尝试编辑文件(html)时,没有任何反应。
这是命令:
docker build -t a-example . && docker run --name a-example -i -t -v //c/Users/pablo/htdocs/www/a-example/src:/www -d -p 80:80 a-example
这是我的Dockerfile:
FROM nginx
RUN mkdir /etc/nginx/logs && touch /etc/nginx/logs/a-example.log
ADD ./nginx.conf /etc/nginx/conf.d/default.conf
ADD /src /www
VOLUME /www
另一个问题:
这条消息是否与此有关?
安全警告:您正在从Windows构建Docker镜像 一个非Win dows Docker主机。添加到构建的所有文件和目录 上下文将有' -r wxr-xr-x'权限。建议 双重检查和重置权限f或敏感文件和 目录。
答案 0 :(得分:0)
我认为您的音量不可用,因此您的容器正在显示图像构建期间/src
编辑的ADD
的静态内容。
Kitematic运行VirtualBox linux机器,运行您的docker容器。
您用于卷的路径://c/Users/pablo/htdocs/www/a-example/src:/www
看起来很可疑,因为它是完整的Windows路径。
Docker机器(这是kitematic用于管理虚拟机器的机器)默认情况下将C:\Users
映射到/Users
尝试--volume /Users/pablo/htdocs/www/a-example/src:/www
答案 1 :(得分:0)
我不使用KiteMatic或Docker Machine来控制我的本地docker实例。
但是,Docker Machine使用在VirtualBox虚拟机中运行的boot2docker iso(Tiny Core Linux和Docker的自定义版本)。 Virtual Box提供guest虚拟机添加以装载主机文件夹。
请参阅Boot2Docker guidelines at the time of Docker 1.9.1 release
On Windows:
- C:\Users mounted as /c/Users
On Linux:
- /home mounted as /hosthome
On OSX:
- /Users mounted as /Users
通过Guest Additions完成:
vbm("sharedfolder", "add", d.MachineName, "--name", shareName, "--hostpath", shareDir, "--automount")
如果您选择使用Windows主机上的samba共享,则需要相应的TLC包(来自常见问题解答):
如果共享计算机至少是Windows 2000,则只能使用filesystems-2.6.29.1-tinycore.tcz
扩展名安装共享。
在根控制台中:
mkdir /mnt/windows
mount -t cifs //9.53.216.11/myshare /mnt/windows -o user=myname,pass=mypassword
在搜索boot2docker
和filesystems-2.6.29.1-tinycore.tcz
之后,我得到this GitHub issue:
sudo find / -type d -name 'cifs'
似乎表明正确的内核版本中的CIFS(Samba)客户端已经存在......允许我们运行
sudo mount -t cifs //MYPC/hostgithub ~/windows -o user=USER
boot2docker VM上的
Docker Volumes似乎是一个处理Developer Environments主机文件夹的新提案,请参阅:
Docker-Volume-Netshare:虽然这需要在docker机器上提供nfs-common
或nfs-utils
(取决于您的发行版),但如果没有某些内容,这可能不适用于CoreOS / Boot2Docker其他技巧。
考虑到Docker-Volume-Netshare just wraps shell执行/bin/sh -c "mount -t cifs ..."
命令,它应该在boot2docker上运行。如果您在CoreOS上使用so0k/mount.cifs_copy,则可能需要一种方法来指定cif /opt/bin/mount.cifs
的路径。
对于Windows用户,请使用上面提到的netshare卷驱动程序注意my blog post,以便通过Swarm群集从Windows主机安装挂载。
注意:使用git-for-windows
和git-bash
时要小心,因为我将这些路径转换为docker.exe时出现问题