docker-machine scp
docker-machine scp
将文件从本地主机复制到机器,从机器到机器或从机器复制到本地主机scp
。
符号是machinename:/path/to/files
用于论证的; 在主机的情况下,您不必指定名称,只需指定路径。
例
考虑以下示例:
$ cat foo.txt
cat: foo.txt: No such file or directory
$ docker-machine ssh dev pwd
/home/docker
$ docker-machine ssh dev 'echo A file created remotely! >foo.txt'
$ docker-machine scp dev:/home/docker/foo.txt .
foo.txt 100% 28 0.0KB/s 00:00
$ cat foo.txt
A file created remotely!
就像scp
如何递归复制文件的-r
标志一样,docker-machine
具有此功能的-r
标志。
在从机传输文件到机器的情况下,他们经过本地主机的文件系统中第一个(使用scp
的-3
标志)。
为远程部署指定文件路径
当您使用docker-machine scp
应用程序部署将文件复制到远程服务器时,请确保docker-compose
Docker守护程序知道如何找到它们。您可以指定绝对路径,例如/home/myuser/workspace
,将在/workspace
运行Docker守护程序的远程主机上的绝对路径中,将其装载到容器中的Compose文件中。本地客户端路径(例如,在您的笔记本电脑上)对远程计算机上运行的守护程序不起作用,因此请避免使用相对路径。
例如,假设您想将本地目录传输/Users/londoncalling/webapp
到远程计算机,并将其挂载到远程主机上的容器中。(我们假设远程用户是ubuntu
。)你可以这样做:
$ docker-machine scp -r /Users/londoncalling/webapp MACHINE-NAME:/home/ubuntu/webapp
然后编写一个docker-compose文件,该文件将其绑定到:
version: "3.1"
services:
webapp:
image: alpine
command: cat /app/root.php
volumes:
- "/home/ubuntu/webapp:/app"
我们可以这样做:
$ eval $(docker-machine env MACHINE-NAME)
$ docker-compose run webapp