2016-10-28 48 views
2

我想將本地腳本文件複製到遠程主機並運行其中的一個。在本地主機,我會用這些命令:是否可以像普通API一樣使用docker remote API?

docker run -d python tail -f /dev/null 
docker cp ./ <id>:/usr/local/bin/ 
docker exec <id> python /usr/local/bin/script.py 

我想添加一臺遠程機器

官方網站suggests使用捲曲的附加命令指定的IP和端口。碼頭客戶端有一個list,但它們都應該以編程方式使用。

我寧願從控制檯運行這些命令,或將它們放到.bat文件中。爲什麼通過curl /使用某種語言設置項目來運行三個命令而引入額外的複雜度? docker-toolbox允許在遠程主機上執行命令嗎?

回答

1

docker命令行可以像本地引擎一樣針對遠程Docker引擎工作 - 它使用環境變量來指定它應該連接到的API的詳細信息。

docker-machine包裝此整齊與env命令,但你可以用定期docker CLI通過設置這些變量做到這一點:

DOCKER_HOST=tcp://192.168.99.101:2376 
DOCKER_CERT_PATH=/Users/nathanleclaire/.docker/machines/.client 
DOCKER_TLS_VERIFY=1 

使用自己的遠程主機地址和證書。

默認情況下,Docker Engine API不會公開給遠程客戶端,因此您需要對其進行配置 - Using TLS with the Docker Engine顯示了您的工作方式。

+0

我設置在服務器上沒有加密 'DOCKER_OPTS =' -^h TCP://0.0.0.0:4243 -H UNIX:/// var/run中/ docker.sock'' HTTP:/ /www.virtuallyghetto.com/2014/07/quick-tip-how-to-enable-docker-remote-api.html 在Windows中,我使用了一個環境變量'DOCKER_HOST',將其設置爲'tcp:// my.ip.address:port'並重新啓動工具箱。在開始打印時,「docker被配置爲使用ip 192.168.99.100的默認機器」。這些命令在本地實例上執行。 – user2136963

+0

工具箱終端在其自己的用戶會話中運行,因此您需要設置系統變量或在工具箱終端內設置環境變量。 –

相關問題