[英]boot2docker command works on shell, but not in script
這里是docker的新手。 我有一系列命令,如果將它們在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" docker@$host docker run --net=host my-image
如果我不嘗試通過ssh運行命令,則一切正常。 即:
ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" docker@$host
這會彈出docker 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中,就沒有問題。 如何使該腳本起作用?
謝謝
更新如果我把它自己的腳本最后一行,並運行在命令行序列中的兩個劇本,一切都很好(相同只是順序輸入的所有命令。)如果我鏈上的腳本,或者創建一個三分之一按順序運行它們,我得到了錯誤。 我要怎么做?
謝謝
嘗試使用host
可能未定義host
。 您可能可以通過在運行ssh
之前echo
它的值來確認這一點。 最簡單的解決方案是將這兩行放在同一文件中:
host=$(boot2docker ip 2> /dev/null)
ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" docker@$host docker run --net=host my-image
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.