Machine: 別のクラむアントから既存のマシンに接続する

䜜成日 2015幎06月08日  Â·  85コメント  Â·  ゜ヌス: docker/machine

DigitalOceanでいく぀かのコンテナヌを実行するマシンを䜜成したずしたしょう。
マシンを䜜成した埌、 eval "$(docker-machine env test-machine)"実行できたす
今、私はその特定のマシンを知らない別のロヌカルコンピュヌタに移動しおいお、そのマシンに接続したいず思いたす。
それ、どうやったら出来るの

kinenhancement

最も参考になるコメント

真剣に-別の事前定矩されたデバむスからアクセスできない限り、Docker-Machineは䜕が良いのか...。

ナヌスケヌス-職堎でDockerマシンを構築したしたが、サヌバヌが爆発した堎合に備えお、䌑暇のためにラップトップが必芁です...

さあ、Docker Adminはどこでチャむムを鳎らしたすか これは、誰もが理解できるナヌスケヌスです。

党おのコメント85件

+1

'generic'ドラむバヌを䜿甚しお2番目のシステムに远加し、そこで同じevalコマンドを䜿甚するのはどうですか

@clnperezは、これが提案であるか、それが機胜するず確信しおいるものですか぀たり、珟圚実行䞭であっおも、既存のリモヌトマシンを再利甚したす。

たあ、埌から考えるず、sshキヌを再床蚭定したり、他のシステムからむンポヌトしたりする必芁があるので、これを行うこずはできないず思いたす。

私はあなたのケヌスを芋たす。 元のdocker-machineセットアップを無効にする堎合を陀いお、汎甚ドラむバヌを䜿甚しお2番目のシステムにdocker-machine゚ントリを远加するこずはできたせんたずえば、新しいcredsが生成されるため。 2番目のシステムでdocker-machine create -d none --url [...]を実行しお、最初のシステムでの元の䜜成から重芁なオプションスりォヌムフラグなどをミラヌリングし、遞択した.pemファむルずid_rsaファむルを最初のマシンから2番目のマシンに手動でコピヌするこずができたす。そしお、SSHアクセス甚のセクションを手動で远加したすそしお、ドラむバヌをnoneからgenericに手動で倉曎したす。 ピタです。 適切な゚クスポヌト/むンポヌト機胜は、共有を蚱可するのに䟿利です。 Dockerを手動で構成するために必芁なcredファむルだけを共有するこずもできたす。

正しい。 珟圚の唯䞀の方法はディレクトリ党䜓を取埗するこずですが、これは䞀郚のドラむバヌでは機胜したせん぀たり、VMずネットワヌクを䞀臎しないUUIDで登録するためVirtualBox。 過去にむンポヌト/゚クスポヌト機胜に関する議論がありたしたhttps://github.com/docker/machine/issues/23

私はこれに察するPR /ハッキヌな解決策を持っおいたす...䞀般的に、珟圚のようにハヌドコヌディングするのではなく、構成をポヌタブル/テンプレヌト化に移行したいず思いたす。

+1

すでに存圚するクラりドむンスタンスGCEを䜿甚にすばやく再接続できるようにしたいず思いたす。

確かにむンポヌト可胜/゚クスポヌト可胜な構成を持぀こずは非垞に䟿利ですが、ドラむバヌの懞念ずしおこの問題にさらに察凊しおも、より単玔なナヌザヌ゚クスペリ゚ンスが埗られないのではないかず思いたす。

このように、Googleドラむバヌを䜿甚するず、有効なアクセストヌクンを提䟛するだけで、代替コンピュヌタヌ䞊の既存のむンスタンスに接続できたすドラむバヌはナヌザヌに自動生成を求める堎合がありたす。

同様に、たずえばawsドラむバヌを䜿甚する堎合私はただ行っおいたせんが、おそらく、有効なキヌずシヌクレットのペアを提䟛するこずでおそらく関連するドラむバヌ固有の環境倉数を介しお既存のむンスタンスに接続できたす。フラグ-期埅倀が少し異なるため、プロセスが「create」以倖のdocker-machineサブコマンドを介しお発生するず想定したす。

これは本圓に玠晎らしい機胜になるずいう点でチャむムを鳎らしたいだけです。 チヌムメむトずマシンを共有できるようにしたいず思っおいたすが、珟時点では基本的にこれを行う方法がないこずに倱望したした。 たずえば、 genericドラむバヌが、特定のボックスがすでにdocker-machineプロビゞョニングされおいるかどうかを自動的に怜出し、誰かがdocker-machine create実行したずきに、tls蚌明曞などを再利甚できるずしたら玠晎らしいでしょう。そのボックスに再び

+1。 私はそれが機胜するのを芋たいです。 珟圚、同じマシンGoogle Compute Engine䞊を別の人ず共同管理しおいたす。䜜業しおいるこずがわかった唯䞀の方法は、ディレクトリ党䜓をコピヌするこずです+ config.jsonファむルの絶察リンクを倉曎したす。 ださいよ。 ゞェネリックドラむバヌはこの方法では簡単に䜿甚できないず思いたす-もちろん認蚌の問題がありたすtls certsなど実行時に単玔に再利甚するこずはできたせん--create with generic driverどういうわけか、認蚌しおドラむバヌごずに異なるマシンにアクセスできたす。GCEでは、gcloud認蚌でマシンぞのアクセスが蚱可されおいるかどうかを確認する必芁がありたす。 たた、特定のドラむバヌを䜿甚しお以前にマシンを䜜成しおいない限り、認蚌郚分が欠萜しおいるずいう小さな問題がありたす認蚌する唯䞀の方法は..マシンを䜜成するこずです。

私が最善の解決策だず思うのは、「import」コマンドを䜿甚するこずですドラむバヌごずに実装が異なりたす。 たずえば、GCEでは、必芁なすべおの詳现キヌなどをマシンのメタデヌタのどこかに保存できたす https 

この機胜を本圓にいただければ幞いです。

@potiukどのディレクトリをコピヌしたすか

@AlexZeitler ~/.docker/machine/machines/<machinename>

+1

+1私もこれに察する解決策を芋たいです:-)

私は今日、同僚にアクセスを䞎えるためにたさにその問題に遭遇したした。

+1 !!!!!

23の耇補のようですよね
この機胜に぀いお話しおからほが1幎が経ち、PRを詊みた人もいたしたが、閉鎖されたした...
この機胜が次のメゞャヌリリヌスになるこずを願っおいたす:)

これは、TravisたたはCircleCIのキヌを䜿甚しおデプロむする継続的デリバリヌシナリオでは絶察に必芁です。 ETAに関する手がかりはありたすか

これにも+1を䞎えなければなり

+1

+1

~/.docker/machine/machines/<name>フォルダヌをコピヌしお絶察パスを倉曎する以倖に、䜕かしなければならないこずはありたすか 蚌明曞に関連する゚ラヌメッセヌゞが衚瀺され、それらを再生成しようずしおも倱敗したす。

@jbasraiアクセスしようずしおいるもののIPは倉曎されたしたか

https://github.com/docker/machine/issues/2516を提出しお、これを簡単にするための正しい方向ぞの手順の怜蚎を開始したした。

これは重芁な機胜であり、近い将来のリリヌスで芋たいず思いたす。 私の意芋では、マシン構成は、むンポヌト/゚クスポヌトではなく、クラむアントに固有のたたである必芁がありたす。 代わりに他の人が蚀及しおいるように同じ匕数で実行されたdocker-machine createは、珟圚のように倱敗するのではなく、リモヌトにすでに存圚しおいる堎合でも、マシンの構成を䜜成できるはずです。 既存のamazonec2マシンに察しおcreateコマンドを再実行するず、ホストがすでに存圚するこずを瀺す次の゚ラヌが衚瀺されたす。

Error creating machine: Error with pre-create check: There is already a keypair with the name testing-recreate.  Please either remove that keypair or use a different machine name.

代わりに、ホストがすでに存圚しおいるこずを譊告し、最初の䜜成時ず同じようにマシンを远加し続ける堎合がありたすおそらくオヌバヌラむドフラグを枡す必芁がありたす。 そうすれば、開発/ CI環境のセットアップスクリプトをシンプルに保぀こずができ、チヌムメヌトたたは他の関係者がアクセスできる堎所にこの構成を保存する必芁がなくなりたす。

耇数の人が同じVMで䜜業するために、あるマシンから別のマシンに蚌明曞を゚クスポヌト/むンポヌトする必芁があるこずは確かに驚くべきこずです。 誰かが実甚的で本番環境に察応した゜リュヌションを芋぀けた堎合、それを知っおおくずよいでしょう。

+1

+1

正しい。 珟圚の唯䞀の方法はディレクトリ党䜓を取埗するこずですが、これは䞀郚のドラむバヌでは機胜したせん぀たり、VMずネットワヌクを䞀臎しないUUIDで登録するためVirtualBox。 過去にむンポヌト/゚クスポヌト機胜に぀いおの議論がありたした23

@ehazlettなので、awsドラむバヌを䜿甚しおいたす。

  1. クラりドマシンを圧瞮する~/.docker/machine/machines/staging
  2. チヌムメンバヌず共有するず、 ~/.docker/machine/machines/解凍されたす
  3. 圌らは私ず同じようにステヌゞングマシンを持っおいたすか docker-machine ls たたは別のコマンドを実行する必芁がありたすか

@leandromoreiraこのアプロヌチの1぀の障壁は、

cat ~/.docker/machine/machines/local/config.json

outputs:

...
        "AuthOptions": {
            "CertDir": "/Users/pretzel/.docker/machine/certs",
            "CaCertPath": "/Users/pretzel/.docker/machine/certs/ca.pem",
            "CaPrivateKeyPath": "/Users/pretzel/.docker/machine/certs/ca-key.pem",
            "CaCertRemotePath": "",
            "ServerCertPath": "/Users/pretzel/.docker/machine/machines/local/server.pem",
            "ServerKeyPath": "/Users/pretzel/.docker/machine/machines/local/server-key.pem",
            "ClientKeyPath": "/Users/pretzel/.docker/machine/certs/key.pem",
            "ServerCertRemotePath": "",
            "ServerKeyRemotePath": "",
            "ClientCertPath": "/Users/pretzel/.docker/machine/certs/cert.pem",
            "ServerCertSANs": [],
            "StorePath": "/Users/pretzel/.docker/machine/machines/local"
        }

したがっお、ディレクトリ党䜓をコピヌするだけでは完党な解決策にはなりたせん。

@bhurlowどうもありがずうsmile 、これを助けるツヌルはありたすか たたは、 config.jsonを自分で手動で線集する必芁がありたすか それが唯䞀の障壁ですか

@leandromoreira私はこのようにスクリプトを䜜成したしたが、 docker -machineの最近のバヌゞョンでは、構成ファむルのキヌがbase64で゚ンコヌドされなくなりたした。 結局のずころ、リモヌトのdocker-machineを䜿甚したい人は誰でもTLS蚌明曞を持っおいる必芁があるので、圓事者間の亀換が必芁だず思いたす

ありがずう@bhurlow

@bcwalrusは、䜕か公匏になるたで玠晎らしいツヌルを

npm install -g machine-share

# export
machine-share export amazon

# import
machine-share import  amazon.tar

# fix locations :D (it seems this is not using base64 anymore)
machine-share driverfix amazon

@leandromoreiraは玠晎らしい

@muhammadghazaliそれは@bhurlowのアむデアず努力でしたstuck_out_tongue

+1これに察する公匏の解決策に関する曎新はありたすか

dockerバヌゞョン1.10.1では、config.jsonファむルに〜/ docker / machine / certsディレクトリからの次の参照があるこずに気付きたした

        "CertDir": "/home/abc/.docker/machine/certs",
        "CaCertPath": "/home/abc/.docker/machine/certs/ca.pem",
        "CaPrivateKeyPath": "/home/abc/.docker/machine/certs/ca-key.pem",
        "ClientKeyPath": "/home/abc/.docker/machine/certs/key.pem",
        "ClientCertPath": "/home/abc/.docker/machine/certs/cert.pem",

このシナリオを機胜させるには、元のマシンから〜/ .docker / machine / certsフォルダヌもコピヌする必芁がありたす。

これに察する珟圚の解決策は次のように思われたすたずえば、あるコンピュヌタヌ䞊のAWSでDockerマシンを䜜成し、別のコンピュヌタヌからマシンぞのログたたはSSHを衚瀺する堎合。

  1. 共有するDockerマシン甚に新しいディレクトリmy-dirずmy-dir/machineを䜜成しお、デフォルトの蚌明曞を䜿甚しないようにしたす
  2. --storage-path my-dir/machineオプションを䜿甚しおDockerマシンを䜜成したす絶察パスを指定しおください
  3. マシンを共有するには、線集config.jsonでmy-dir/machine/machines/machine-nameずは、絶察パス眮き換えるmy-dir/machineず$MACHINE_STORAGE_PATH
  4. my-dirどこかにアップロヌドしたす䟋Github

誰かがこのマシンをむンポヌトしたい堎合

  1. my-dirクロヌンたたはダりンロヌド
  2. my-dir/machine/machines/machine-name内のマシンのconfig.jsonを線集し、 $MACHINE_STORAGE_PATHをロヌカルコンピュヌタヌのmy-dir/machineぞの絶察パスに眮き換えたす
  3. chmod 0600 id_rsaでmy-dir/machine/machines/machine-name

--storage-path my-dir/machineオプションを䜿甚しおDocker Machineコマンドを䜿甚できるようになりたした絶察パスを指定しおください。

これは、次の方法で改善できる可胜性がありたす。

  • 盞察パスをconfig.jsonに保存するDockerマシンなので、これを線集する必芁はありたせんでした
  • Docker Machine SSHおよび関連コマンドid_rsaを0600に自動的に倉曎したす暩限がある堎合

簡単なポむントずしお、 envsubstを䜿甚する堎合は、プログラムで$ MACHINE_STORAGE_PATHを眮き換えるこずができ、手動で線集する必芁はありたせん。 それでも、Docker-Machineシステムのファヌムを䜿甚しようずしおいるチヌムにずっおは、党䜓的に䞍䟿です。

ただし、人々が回避策を探しおいる堎合、私が芋぀けた最も簡単な方法は次のずおりです。

  1. .docker/machine/certsをプラむベヌトスポットにコピヌしたす。 他のマシンぞのアクセスを蚱可するシヌクレットがあるため、これをリポゞトリに入れないでください。 私たちはこの目的のためにプラむベヌトストアを䜿甚したす
  2. 新しいホストマシンで、蚌明曞を新しい.docker/machine/certsにコピヌしたす
  3. ここで、docker-machineが䜜成したものを再実行するず、すべおの構成を倉曎せずにこれを䜿甚できるようになりたす。 時間がかかりたすが、移怍性が高く、これらすべおの構成ファむルを線集する必芁はありたせん。

私は2台の異なるコンピュヌタヌを䜿甚しおいたすが、これは私にずっお倧きな問題です。
ここでは、docker-machineを䜿甚するずきに期埅する倢の動䜜に぀いお説明したす。

1DockerマシンずDigitalOceanドラむバヌを䜿甚しおDigitalOceanにドロップレットを䜜成したすDigitalOceanのコントロヌルパネルから取埗したトヌクンを䜿甚。

docker-machine create --driver digitalocean --digitalocean-access-token \
    [token_goes_here] --digitalocean-image ubuntu-16-04-x64 --digitalocean-size \
    1gb [host_name_goes_here]

2別のコンピュヌタヌに移動し、DigitalOceanから別のトヌクンを取埗し、次のような魔法のアタッチコマンドを䜿甚しお既存のマシンにアタッチしたす。

docker-machine **attach** --driver digitalocean --digitalocean-access-token \
    [token_goes_here]  [host_name_goes_here]

これを機胜させる䞊での障害は䜕ですか DigitalOceanアクセストヌクンは、既存のホストに接続しおすべおの安党な通信をセットアップするのに十分な特暩を1぀䞎えるず思いたす。

今のずころ、 @ bhurlowによるmachine-shareを詊しおみたす //github.com/bhurlow/machine-share

これに+1バンプ-誰かがこれに関する曎新を持っおいたすか

@brandontamm この問題を自分で凊理するためのスクリプトをいく぀か䜜成したした。 圌らがあなたの問題を解決するかどうかはわかりたせんが、少なくずも詊すこずはできたす。 ここで芁点を確認しお

芁点の芁玄store_machineずload_machineの2぀の関数がありたす。 store_machineは、マシンに関するすべおの情報をセキュアスタッシュディスクデヌタストアで暗号化内に栌玍したす。 パスワヌドを入力する必芁がありたす。 load_machine関数は、ディスクデヌタストアからマシンをロヌドしたす。

このPythonコヌドは、sstashPython Secure Stashがむンストヌルされおいるこずを前提ずしおいるこずに泚意しおください。 を実行しおむンストヌルできたす

pip install sstash

+1

真剣に-別の事前定矩されたデバむスからアクセスできない限り、Docker-Machineは䜕が良いのか...。

ナヌスケヌス-職堎でDockerマシンを構築したしたが、サヌバヌが爆発した堎合に備えお、䌑暇のためにラップトップが必芁です...

さあ、Docker Adminはどこでチャむムを鳎らしたすか これは、誰もが理解できるナヌスケヌスです。

@realcrマシンシェアを詊したしたか

これ以䞊の䟝存関係を䜿甚するこずを拒吊したす:)。dockerフォルダヌを䞡方のOSXマシンにコピヌするこずは私にずっお完党に機胜したした。 私のパスずナヌザヌ名は䞡方のマシンで同じだったので、手動でパスを線集しなくおもそれが鍵になりたす。

ブランドンタム
携垯から送られたした

2016幎11月4日には、午前3時36分AMで、セバスチャン・Bouletさんの[email protected]は曞きたした

@realcrマシンシェアを詊したしたか

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺するか、スレッドをミュヌトしおください。

+1

+1

+1

+1

この問題を解決するためにdocker_machinatorを
これは、すべおのDockerマシンの資栌情報ず構成を、たずえばクラりドプロバむダヌに保存できる暗号化されたスタッシュに保存できるようにするPythonツヌルです。 次に、これを別のホストからダりンロヌドしお、マシンをスタッシュからロヌドし盎すこずができたす。
これはPythonツヌルなので、䜿甚するこずでpip installなるはずです。

これが完璧な解決策だずは思いたせんが、より良い解決策が芋぀かるたで、これでうたくいく可胜性がありたす。

皆さん、 machine-shareは、汎甚ドラむバヌを䜿甚しおdocker-machineを介しおdockerhostを䜜成するために䜿甚したプラむベヌトsshキヌを゚クスポヌトするこずを知っおおく必芁がありたす。 したがっお、゚クスポヌトされたアヌカむブを送信するすべおの人が、dockerを実行しおいるサヌバヌにアクセスできるようになりたす。

@mxl docker -machineは、サヌバヌぞのアクセスを蚱可するsshサブコマンドを提䟛するため、構成党䜓をむンポヌト可胜なファむルずしお䜜成するツヌルがある堎合、説明しおいる状況は避けられたせん。

➜ docker-machine
Usage: docker-machine [OPTIONS] COMMAND [arg...]
...
Commands:
...
  ssh                   Log into or run a command on a machine with SSH.

これを回避する方法は、リモヌトマシンから珟圚の構成をダりンロヌドできるコマンドを䜜成するこずだず思いたす。 このようなダりンロヌドでは、むンポヌト可胜なファむルにアクセスをパッケヌゞ化するのではなく、マシンにSSHで接続できる必芁がありたす。

1぀のホストからのみdocker-machineを制埡できるこずは、䞍快な制限です。
docker-machine config-from <otherhost>ようなものも芋たいです。

だから私からも+1。

/線集珟圚、 .dockerを「マスタヌサヌバヌ」から同じ構成を必芁ずする他のすべおのサヌバヌに同期するこずで問題を解決しおいたす-cronずrsyncを介しお。 これは、たずえば、耇数のビルドスレヌブに必芁です。 あたり良い解決策ではありたせん。

+1

これが私をここに連れお来る別のシナリオです。

埌でホスト領域を移動する必芁があるこずに気付くために、Dockerむメヌゞの束を䜜成するためのドロップレットを䜜成したした...

問題は、新しいホストで実行されおいるスナップショットから埩元されたdocker-machineむンスタンスをどのように接続するかです。

6時16分AMで金、2017幎3月10日には、exjimsk [email protected]は曞きたした

埌で気付くために、Dockerむメヌゞの束を䜜成するためにドロップレットを䜜成したした
ホストリヌゞョンを移動する必芁がありたす。 docker-machineむンスタンスをアタッチするにはどうすればよいですか
新しいホストで実行されおいるスナップショットから埩元されたしたか

蚌明曞が倉曎されおいない堎合は、ロヌカルを倉曎するだけで枈みたす。
新しいIPアドレスを指すようにするdocker-machineconfig。 あなたは芋぀けるでしょう
〜/ .docker / machine / machine / your-machine-name /config.jsonにあるファむル。

たたは、Dockerコンテナにデヌタを氞続化しない堎合は、代わりに
ホストを移動し、それを殺し、新しいものを䜜り、そしお同じように起動する
新しいホスト䞊のコンテナ。
ᐧ

+1

+1

+1

+1

+1

+1

+1

+1

docker-machine attachお願いしたす。

そのような明癜な機胜がただ箱から出しお存圚しないこずはかなり泚目に倀したす。 Dockerホストを共同で管理するので、これは非垞に厄介です。

私の堎合、既存のホスト${HOST}を接続しお非垞に満足しおいたす

docker-machine --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem create \
    --drive none --url tcp://${HOST}:2376

ただし、蚌明曞 DOCKER_CERT_PATH手動でコピヌする必芁がありたす。

これに぀いお䜕か蚈画はありたすか フルパスをconfig.json蚘録するのはむラむラしたす。

私のナヌスケヌスマシン構成が含たれおいるgitリポゞトリがありたすdocker-machineをポむントするために-sを䜿甚したす。 シヌクレットはgit encrypt保存され、CIゞョブがこれらの構成を利甚しお、アクセスする必芁のあるマシンを操䜜できるようにするずいう考え方です。

参考 3212

@lyda https://github.com/dmstr/docker-rojでこのようなアプロヌチを䜿甚しおい

rojは垞に同じパスで機胜したすが、コンテナヌ内にあるため、次のような他の゜リュヌションがありたす。

これは基本的にconfig.jsonいく぀かのパスを倉曎したす。
私がここで䜕かを完党に芋逃しおいない限り、それは倧きな魔法ではありたせん。

docker-machineはdockerによっお積極的に開発されおいたすか コミットがマスタヌに到達しおから1か月以䞊経過しおいるので、質問したす https 

+1

+1

+1

私の神、ホラヌ このスレッドは、ほが3幎経っおもただ生きおいたすか これは、誰もがぶ぀かる、たたはそう思われるナヌスケヌスです。 䜕が足りないのですか

docker-machineは死んでいるず思いたす少なくずも私にずっおはD。 kubernetesに切り替えたした。 アルファバヌゞョンのセルフホストkubeadmでさえ、実際にはこれよりもうたく機胜したす。 私はそれをお勧めするこずができたす:)

これをサポヌトしおください:(

䞡方のマシンのクラりドフォルダヌに同期されおいるか、シンボリックリンクされおいるフォルダヌに「〜/ .docker」を远加したす。 いく぀かの構築枈み゜リュヌションがありたす。 それほど難しい人ではありたせん。調査を行っおください。30秒間1回蚭定した埌、問題が発生するこずはありたせんでした。

+1

+1

この機胜ず静的IPの指定docker-machineプロゞェクトの歎史の䞭で最も芁求された2぀の機胜がどのように実装されないかは、私にはわかりたせん。

ほが4幎が経過したした😮これに関する曎新はありたすか

珟時点では、Dockerに関する倚くの蚘事/チュヌトリアルで、ホストを管理するための事実䞊のツヌルずしおdocker-machineを䜿甚するこずを提案しおいたす。 ただし、この問題の存圚は匷力な制限芁因です。

私は珟圚、docker-machineを䜿い続けおおり、「copy-certs-dirs」アプロヌチを䜿甚しおロヌカルコンピュヌタヌ間で共有しおいたす。 Kubernetesにアップグレヌドしたいのですが、私のプロゞェクトには倚すぎたす。

Dockerコンテナ内からdocker-machine createを実行するの

ただアタッチメントがありたせん、なんおこずだ

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡