2016-12-22 12 views
4

私はdocker-machineを使用してAWS上のDockerノードを管理しています。今日、私は新しいノードを作成しようとしたため、インスタンスタイプ間の非互換性のために失敗したとAMIを指定:存在しないEC2インスタンスで "docker-machine rm"が失敗する

docker-machine create --driver amazonec2 --amazonec2-instance-type t2.micro --amazonec2-ami ami-b4a015d4 certbot-config 
Running pre-create checks... 
Creating machine... 
(certbot-config) Launching instance... 
Error creating machine: 
    Error in driver during machine creation: 
    Error launching instance: InvalidParameterCombination: Virtualization type 'hvm' is required for instances of type 't2.micro'. Ensure that you are using an AMI with virtualization type 'hvm'. For more information, see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html 

何であれ、私はエラーを修正します。私の問題は、私がゴーストマシンを作ったようだということです。私はドッキングウィンドウマシンでlsコマンドを実行した場合、私はこれを取得:

NAME    ACTIVE DRIVER  STATE URL SWARM DOCKER ERRORS 
certbot-config -  amazonec2 Error     Unknown MissingParameter: The request must contain the parameter InstanceId 
      status code: 400, request id: 

私はそれを、それを削除し、それを殺す、それを再起動する、または提供することはできません。すべてのコマンドがAWSドライバから400エラーで終了します。

~$ docker-machine rm certbot-config 
About to remove certbot-config 
Are you sure? (y/n): y 
Error removing host "certbot-config": unknown instance 
MissingParameter: The request must contain the parameter KeyName 
    status code: 400, request id: 

このダングリングインスタンスをクリアするにはどうすればよいですか?私はドッカーマシンの下で実行されている多くのインスタンスがあるので、私はむしろ、再インストールのような劇的な何もしないでください。

編集:これをフレームに

おそらく別の方法:ドッカ - マシンが管理対象ホストを追跡するのですか?おそらく、ホストのリストを持つコンピュータのどこかにファイルがあります。私が "docker-machine ls"を実行すると、それはそのリストを下り、ステータスをpingします。このファイルはどこにありますか?また、私が知っているホストを別の場所に残さずに安全に削除できますか?

+0

3日後、私は 'docker-machine ls'を実行するとまだ問題が起きます。それを取り除くことが大好きです。 – nrlakin

答えて

4

これをフレーム化する別の方法:ドッカーマシンが管理対象ホストを追跡する場所はどこですか?

環境変数MACHINE_STORAGE_PATHがあるかどうかを確認してください。

そうでない場合、これらのVMSは~/.dockerである必要があります。

また、未解決のissue 3555見ることができます:

spot instanceは、スポットリクエストを開き、それが成就されるのを待つ準備にドッキングウィンドウマシンを使用しました。これが失敗すると、docker-machineは終了しますが、スポットリクエストは開いたままであり、後で実行される可能性があります。これにより、アクティブなインスタンスでのダングリングスポット要求が発生します。

のスポットインスタンスのサポートについては、issue 226で説明しました。 Spot Requestから

、主な追加パラメータはBidRequest valid From/ToPersistent requestように見えます。機械の文脈では

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/images/spot_introduction.png

、私はあなたが、コマンドが失敗する可能性がある時点でrequest valid to = now + 2 minutesかそこらを設定することができますね。

支持体を添加するPRは、PR 942およびPR 1000であった。
docker-machine rmは、スポットインスタンスが予期している余分なパラメータを適切に検索/提供できない可能性があります。

〜/ .docker/machine/machinesから対応するディレクトリを削除するだけでなく、対応するEC2キーペアをAWS EC2コンソールから削除する必要があります。

+0

私はメカニックが似ていると思うが、スポットリクエストではない。インスタンスは決してスピンアップせず、マシンはぶら下がっている。 config jsonとRSAキーを使って〜/ .dockerのディレクトリを見ることができます。そのマシンのディレクトリを削除しても安全ですか?それはゴミを他の場所に残すのだろうか? – nrlakin

+1

@nrlakinそれは他の場所にゴミを残すべきではなく、あなたのローカルドッカーマシンがそのインスタンスをもうリストしないようにすべきです。 – VonC

+0

作品、ありがとうございます。 – nrlakin

2

私はちょうどこれもヒットし、docker-machine rm -f [name]を使用してローカル参照を削除しました。

しかし、これは(AWSコンソールのEC2 - > Key Pairの下で)キーペアがぶら下がっていました。私はそれを手動で削除しました。

関連する問題