2014-07-05 68 views
1

我有興趣支持使用碼頭作爲其本地工作流程的一部分的開發人員。他們大多數在Windows和OSX上,並且將使用Boot2Docker來運行docker。有沒有碼頭遠程API命令行客戶端

圖像的來源位於主計算機旁邊的項目源代碼。

沒有辦法(不與Boot2Docker圖像搞亂增加客戶附加,或運行samba的容器)共享一個主機目錄到Boot2Docker VM所以我想使用遠程API爲同影響。

即dev在主機上構建maven項目,這會導致創建一個.war工件。

在主機上創建Dockerfile以構建可部署.war工件的映像。

我希望有一個命令行工具,我可以讓我調用構建圖像命令針對Dockerfile及相關文件,使我得到Boot2Docker VM內可運行的圖像在主機上運行。

有許多庫可以與docker remote api對話,但是我很難找到可以直接從主機命令行運行的工具。

我正在考慮只寫我自己的命令行界面到docker-java庫,但想知道是否有現有的工具可以使用?

+0

可以澄清? docker build已經在boot2docker vm上運行了。 cli基本上將Dockerfile和上下文文件發送到構建的服務器。所以在'docker build'命令的最後,映像已經在你的boot2docker虛擬機上。 –

+0

在Boot2Docker VM上,您可以使用** docker **命令,但是我的docker文件位於Windows(或OSX)主機文件系統上。 它的我的理解是沒有** docker **命令在Windows或OSX本機運行。 理想情況下,我會在主機上本地運行docker命令,並將其指向遠程api位置。 我正在尋找一種方法來執行docker命令或另一個建立在遠程api庫之一上的cli。 –

+0

我有同樣的問題,我更喜歡使用修補程序iso來支持共享文件夾,只需使用修補程序iso替換官方boot2docker.iso即可。 https://medium.com/boot2docker-lightweight-linux-for-docker/boot2docker-together-with-virtualbox-guest-additions-da1e3ab2465c它不那麼混亂。 –

回答

1

我想你已經錯過了boot2docker不僅提供虛擬機,也docker二進制,可以連接到它(見Boot2Docker文檔for OSXfor Windows上運行碼頭工人節。

docker CLI(在所有和每個平臺)只與docker守護進程通信,默認設置是通過本地unix套接字進行通信,這被認爲更安全,但boot2docker配置爲偵聽VM上的TCP套接字,該套接字預先配置爲可從主機

當啓動最近的boot2docker版本S(至少在OSX),你得到這個消息,你唯一需要的配置:

$ boot2docker up 
2014/07/05 18:23:01 Waiting for VM to be started... 

2014/07/05 18:23:02 Started. 
2014/07/05 18:23:02 To connect the Docker client to the Docker daemon, please set: 
2014/07/05 18:23:02  export DOCKER_HOST=tcp://192.168.59.103:2375 

如果我理解這個問題,這是你所需要的,並且全部由碼頭工人和boot2docker提供。

+1

對於案卷客戶端,只需使用'docker -H tcp://192.168.59.103:2375'連接遠程docker守護進程。 – study