介紹
大家好,我成立了一個泊塢窗機在Azure中使用以下指南:刪除未使用的碼頭工人圖像託管碼頭工人實例給出了「未知速記標誌:‘A’在-aq」錯誤
- https://blogs.msdn.microsoft.com/jcorioland/2016/08/19/build-push-and-run-docker-images-with-visual-studio-team-services/
- https://docs.docker.com/machine/drivers/azure/
我設法讓這一切工作,並在Windows上做一個構建,當我現在可以使用鋰nux Docker Host從創建的源創建docker鏡像。 (只需使用「泊塢窗:建立一個像」步驟,然後由「泊塢窗:推圖像」的步驟設置爲我的Linux構建機器的DockerHostConnnection:
這個過程卻留下創建的圖像。在磁盤上
我想下一步要做的就是創建一個每晚構建是清理圖片我基本上創建了一個新的版本,並增加了以下步驟:
- 顯示搬運工圖像前:(泊塢窗圖片-a)
- 泊塢信息:(泊塢窗資訊)
- 刪除泊塢窗圖片:(泊塢窗RMI $(搬運工圖像-aq))
- 泊塢窗顯示影像後:(搬運工圖像-a)
問題
每當我運行此版本,雖然我似乎收到以下錯誤:
奇怪的是雖然是命令「泊塢窗圖像-aq」中的步驟之前,工作得很好:
調查
我開始做從手動拉開指令一番調查我自己的電腦遠程主機泊塢窗,但我遇到了同樣的問題有以下.cmd文件:
docker.exe -H tcp://**********:2376 --tls --tlscacert='ca.pem' --tlscert='cert.pem' --tlskey='key.pem' login -u ********** -p ********** **********
docker.exe -H tcp://**********:2376 --tls --tlscacert='ca.pem' --tlscert='cert.pem' --tlskey='key.pem' images -aq
docker.exe -H tcp://**********:2376 --tls --tlscacert='ca.pem' --tlscert='cert.pem' --tlskey='key.pem' rmi $(docker images -a)
docker.exe -H tcp://**********:2376 --tls --tlscacert='ca.pem' --tlscert='cert.pem' --tlskey='key.pem' logout **********
此.cmd文件的結果:
噹噹地從.CMD我看到了同樣的錯誤運行它:
從PowerShell中運行它,它的工作原理雖然罰款:
編輯。 ..(經過更多調查)
使用這些知識,我將.cmd文件修改爲似乎效果更好一點的.ps1文件。一個問題是,$(docker ....)從本地docker安裝中獲取了它的信息。我改變了腳本以下,現在它從我的本地機器的工作方式與Azure中的Linux泊塢窗主持人:
docker.exe -H tcp://**********:2376 --tls --tlscacert='ca.pem' --tlscert='cert.pem' --tlskey='key.pem' login -u ********** -p ********** **********
docker.exe -H tcp://**********:2376 --tls --tlscacert='ca.pem' --tlscert='cert.pem' --tlskey='key.pem' images -a
docker.exe -H tcp://**********:2376 --tls --tlscacert='ca.pem' --tlscert='cert.pem' --tlskey='key.pem' rmi -f $(docker -H tcp://**********:2376 --tls --tlscacert='ca.pem' --tlscert='cert.pem' --tlskey='key.pem' images -aq)
docker.exe -H tcp://**********:2376 --tls --tlscacert='ca.pem' --tlscert='cert.pem' --tlskey='key.pem' logout **********
所以基本上這個然而現在的工作,我怎麼能得到這個與Azure的泊塢構建步驟工作?
因爲基本上似乎有兩個問題與天青多克爾整合步驟:
- 我想中的命令CMD而不是PowerShell的,這導致-a錯誤
- 在做類似運行: 'docker -H .... rmi $(docker images -aq)',第二個docker命令(docker images ...)將與本地docker實例進行通信。所以我實際上喜歡這個解決方案,而不必手動提供IP地址和所有證書。 (如果找不到好的解決方案,我可以用哈克的方式解決這個問題)
我明白,這目前可能是這種情況。雖然這不能解決問題,但我正在尋找一種很好的解決方法,或者可能需要對Docker集成步驟的當前方式進行更改。基本上,您希望能夠像在Linux/PowerShell中一樣將命令鏈接在一起。 – Devedse