2014-12-26 89 views
0

這裏是docker的新功能。我有一系列的命令,如果在shell上將它們燒掉,就可以正常工作,但如果我將它們放在腳本中,則不要。boot2docker命令適用於shell,但不適用於腳本

boot2docker destroy 
boot2docker init 
boot2docker start 
boot2docker ssh & 
host=$(boot2docker ip 2> /dev/null) 
# everything works fine up to here 
ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" [email protected]$host docker run --net=host my-image 

如果我不試圖通過SSH運行命令,一切正常。即:

ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" [email protected]$host

這帶來了泊塢窗的ssh提示。但是,如果我不通過腳本運行的命令(這是我真正需要做的)我得到錯誤信息:

level="fatal" msg="Post http:///var/run/docker.sock/v1.16/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?"

同樣,如果我只是輸入一個命令,或者整個一連串的命令,進入shell,沒有問題。我怎樣才能使這個腳本工作?

感謝

更新 如果我把它自己的腳本最後一行,並運行在命令行序列中的兩個劇本,一切都很好(相同只是順序輸入的所有命令。 )如果我鏈接腳本,或創建第三個按順序運行它們,則會出現錯誤。我該怎麼做呢?

感謝

+1

事實上,這將是很多,如果更多的幫助,而不是downvoting,你回答了這個問題。 –

回答

0

host當您嘗試使用它可能沒有定義。您可以在運行ssh之前確認其值爲echo。最簡單的解決辦法是將這兩行一起放在同一個文件:

host=$(boot2docker ip 2> /dev/null) 
ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" [email protected]$host docker run --net=host my-image 
相關問題