2016-05-31 25 views
1

要在OS X上使用Docker,我使用的是由docker-machine管理的VirtualBox中运行的boot2docker虚拟机。 boot2docker documents mention a persistence volume /var/lib/boot2docker。我想将主机文件系统上的文件bootlocal.sh复制到boot2docker虚拟机。复制或scp文件到/ var/lib/boot2docker for docker-machine管理的boot2docker虚拟机

我认为docker-machine's scp command将工作这一点,

docker-machine scp bootlocal.sh dockerhost:/var/lib/boot2docker/ 

不幸的是,这给

scp: /var/lib/boot2docker/bootlocal.sh: Permission denied 
exit status 1 

检查文件的权限,我们可以看到,root与写入权限这唯一的一个目录,默认情况下:

[email protected]:~$ ll -d /var/lib/boot2docker 
lrwxrwxrwx 1 root  root   29 May 31 17:40 /var/lib/boot2docker -> /mnt/sda1/var/lib/boot2docker/ 
[email protected]:~$ ll -d /mnt/sda1/var/lib/boot2docker 
drwxr-xr-x 6 root  root   4096 May 31 17:40 /mnt/sda1/var/lib/boot2docker/ 

不可能将用户root指定为与docker-machine scp一起使用的用户。

如何将文件复制到/var/lib/boot2docker,最好来自主机?

回答

0

我找不到使用docker-machine scp这样做的方法。我确实发现,至少在OS X中,主机的/Users目录作为一个卷装入docker-machine虚拟机中,这意味着如果该文件位于该目录下的主机文件系统中,则虚拟机可以访问它逐字。

知道了这一点,我的解决方法是使用docker-machine ssh为我需要传输的文件发出cp命令。

docker-machine ssh dockerhost sudo cp /Users/username/path/to/bootlocal.sh /var/lib/boot2docker/ 
相关问题