将由docker机器管理的boot2docker VM的文件或scp文件复制到/var/lib/boot2docker

将由docker机器管理的boot2docker VM的文件或scp文件复制到/var/lib/boot2docker,docker,boot2docker,docker-machine,Docker,Boot2docker,Docker Machine,要在OSX上使用Docker,我使用的是运行在VirtualBox中的boot2docker VM,由Docker机器管理。这个我想将主机文件系统上的文件bootlocal.sh复制到boot2docker虚拟机 我想这会有用的 docker-machine scp bootlocal.sh dockerhost:/var/lib/boot2docker/ 不幸的是,这给了 scp: /var/lib/boot2docker/bootlocal.sh: Permission denied ex

要在OSX上使用Docker,我使用的是运行在VirtualBox中的boot2docker VM,由Docker机器管理。这个我想将主机文件系统上的文件
bootlocal.sh
复制到boot2docker虚拟机

我想这会有用的

docker-machine scp bootlocal.sh dockerhost:/var/lib/boot2docker/
不幸的是,这给了

scp: /var/lib/boot2docker/bootlocal.sh: Permission denied
exit status 1
检查文件权限,我们可以看到,
root
是唯一一个对此目录具有写入权限的目录,默认情况下:

docker@dockerhost:~$ ll -d /var/lib/boot2docker
lrwxrwxrwx    1 root     root            29 May 31 17:40 /var/lib/boot2docker -> /mnt/sda1/var/lib/boot2docker/
docker@dockerhost:~$ 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
,最好是从主机复制

我找不到使用
docker machine scp
的方法。我确实发现,至少对于OSX,主机的
/Users
目录作为卷装载在docker machine VM中,这意味着如果文件位于该目录下的主机文件系统中,VM可以逐字访问它

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

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