?
This document uses PHP Chinese website manual Release
將文件從本地主機復(fù)制到機器,從機器到機器或從機器復(fù)制到本地主機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
如何遞歸復(fù)制文件的-r
標志一樣,docker-machine
具有此功能的-r
標志。
在從機傳輸文件到機器的情況下,他們經(jīng)過本地主機的文件系統(tǒng)中第一個(使用scp
的-3
標志)。
當您使用docker-machine scp
應(yīng)用程序部署將文件復(fù)制到遠程服務(wù)器時,請確保docker-compose
Docker守護程序知道如何找到它們。您可以指定絕對路徑,例如/home/myuser/workspace
,將在/workspace
運行Docker守護程序的遠程主機上的絕對路徑中,將其裝載到容器中的Compose文件中。本地客戶端路徑(例如,在您的筆記本電腦上)對遠程計算機上運行的守護程序不起作用,因此請避免使用相對路徑。
例如,假設(shè)您想將本地目錄傳輸/Users/londoncalling/webapp
到遠程計算機,并將其掛載到遠程主機上的容器中。(我們假設(shè)遠程用戶是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