web-dev-qa-db-ja.com

Dockerマシンの名前を変更する

docker-machineマシンの名前を変更するにはどうすればよいですか? docker-machine --helpサブコマンドドキュメント を使用しても見つかりません。

21
Dag Høidahl

破棄されたプルリクエストがあったようです: PR

関連する問題では、このコマンドを許可しないことについての議論があります: 問題59

10
Woot4Moo

基本的には次のことを行う必要があります。

  1. docker-machineのディレクトリの名前をdocker machine storeから変更します(通常は/.docker/machine/machines/内)
  2. config.jsonを新しい名前と新しいパスで更新します
  3. 仮想マシンプロバイダー(VirtualBox、VMwareなど)でマシンの名前を変更する

これが VirtualBoxの要旨です。これにより、このようなマシンの名前を変更できますdocker-machine-rename default my-default

これは、VirtualBoxを使用している場合にのみ機能します。 paralellsドライバーなどを使用している場合は、vboxmanage ...をそのドライバー用の適切なコマンドに置き換える必要があります。

[〜#〜]編集済み[〜#〜]@DagHøidahlからフィードバックを受け取った後、スクリプトを更新しました

13
Alex Proca

Mac OSXでVirtualBoxを使用してdocker-composeを実行するには、次の手順に従いました

  1. VirtualBoxコンソールから仮想マシンの名前を変更します。 (vboxmanage modifyvm "$OLD_MACHINE_NAME" --name "$NEW_MACHINE_NAME")も使用できると思います
  2. VirtualBoxコンソールから仮想マシンを削除します。データは削除せず、仮想マシンのみを削除することに注意してください。
  3. VirtualBox Media Managerに移動し、削除されたマシンで使用されているハードディスクと光ディスクを削除します。 (後で仮想マシンをインポートするために必要です)
  4. Dockerディレクトリで仮想マシンのディレクトリの名前を変更します。通常は$ HOME/.docker/machine/machinesにあります。 mv $OLD_MACHINE_NAME $NEW_MACHINE_NAME
  5. マシンディレクトリにあるconfig.jsonの古いマシン名へのすべての参照を、新しいマシン名に置き換えます。マシンの名前をデフォルトに変更していたので、私の場合は$ HOME/.docker/machine/machines/default/config.jsonでした。
  6. 仮想マシンディレクトリのサブディレクトリにある.vboxファイルのディスクイメージを指すディレクトリを更新します。それらが新しい場所を指していることを確認する必要があります。 (私の場合は$ HOME/.docker/machine/machines/default/default/default.vboxでした)
  7. メニューから[マシン]> [追加...]オプションを使用して、仮想マシンをVirtualBoxにインポートします。マシンディレクトリのサブディレクトリにある.vboxファイルを選択します。 (私の場合は$ HOME/.docker/machine/machines/default/default/default.vboxでした)

次のバージョンを使用しています:docker-machineバージョン0.13.0、ビルド9ba6da9 Virtual Boxバージョン5.2.6 r120293

1
Alberto

!!警告:以下で使用した方法は機能しませんでした!!

最後の再起動で、クライアントのバージョンが一致しませんでした。ターミナルを閉じて "Docker Quickstart Terminal"を再起動した後、私のdefaultマシンが削除され、再作成されました... :(

とにかく、プロセスのエラーを指摘できるかもしれない人のために-私はそれをここにリストしました。

おそらく「デフォルト」という名前は予約されています。現時点では、VMWare Fusionでホストされているマシンには「vm」という名前を付けています

私はこれを投稿しましたnon-answer同じことを試み、デフォルトのマシンでコンテナを失う可能性のあるすべての人への警告として。


目標:デフォルトのマシンを削除し、vmの名前をデフォルトに変更します。次に、新しいマシンをデフォルトとして使用します

私が使用した方法はエレガントではなく、[最終的に] 私にはうまくいきませんでした ...

  1. docker-machine を削除します

    docker-machine rm default

  2. ディレクトリの名前を変更

    cd〜/ .docker/machine/machines
    mv vm default
    cd default

  3. すべてのvm。*ファイルの名前を手動でdefault。* に変更します。

    mv vm.plist default.plist
    mv vm.vmdk default.vmdk
    mv vm.vmdk.lck default.vmdk.lck
    mv vm.vmsd default.vmsd
    mv vm.vmx default.vmx
    mv vm.vmx.lck default.vmx.lck
    mv vm.vmxf default.vmxf

  4. default.vmxを編集し、適切な場所でvmをdefaultに置き換えます

    [これは自分で行う必要があります...]

  5. 新しい「デフォルト」を開くVM in VMWare Fusion
    • Finder-> go-> folder->〜/ .docker/machine/machines
    • .vmxファイルをFusionにドラッグします
  6. 名前を変更したマシンを起動します

    $ docker-machine start default
    「デフォルト」を開始しています...
    マシン「デフォルト」が開始されました。
    SSHが利用可能になるのを待っています...
    プロビジョニング担当者を検出しています...
    起動されたマシンは新しいIPアドレスを持っている可能性があります。 docker-machine envコマンドを再実行する必要がある場合があります。
    $ docker-machine env
    エラーチェックTLS接続:エラーチェックおよび/または証明書の再生成:ホスト "172.16.41.132:2376"の証明書の検証中にエラーが発生しました:x509:証明書は172.16.41.131では172.16.41.132ではなく有効です
    docker-machine regenerate-certs [name]を使用して再生成を試みることができます。
    これにより、Dockerデーモンの再起動がトリガーされ、コンテナーの実行が停止します。
    $ docker-machine regenerate-certs default
    TLSマシン証明書を再生成しますか?警告:これは元に戻せません。 (y/n):y
    TLS証明書の再生成
    SSHが利用可能になるのを待っています...
    プロビジョニング担当者を検出しています...
    証明書をローカルマシンディレクトリにコピーしています...
    証明書をリモートマシンにコピーしています...
    リモートデーモンでDocker構成を設定しています...

この時点で、マシンはfine...で動作しましたが、別のdocker-machine restart defaultを試行すると、クライアントバージョンの不一致エラーが発生しました。

ターミナルを閉じて「Docker Quickstart Terminal」を再起動した後、virtualboxを使用してデフォルトマシンが再生成され、VMWareがホストするデフォルトマシンが削除されました...

0
DerekC

Docker toolboxを使用してdocker machineを作成または起動する場合、名前を含むマシン設定を構成するスクリプトファイルがあります。 c:\ Program Files\Docker Toolboxのようなdocker toolboxパスを見つけます。マシン名としてstart.sh .replace default nameという名前のスクリプトがあります。

VM=${DOCKER_MACHINE_NAME-xxxxx}

設定を変更する前に、デフォルトのマシンファイルを削除することをお勧めします。次に、ツールボックスを再起動します。

0
Sarah