在线文档教程
Docker 17
机器 | Machine

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-composeDocker守护程序知道如何找到它们。您可以指定绝对路径,例如/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

机器scp子命令