web-dev-qa-db-ja.com

Dockerマシンの場所の変更-Windows

Windows 7でdockerツールボックスを使用してdockerを実行しています。 (dockerバージョン1.9.1)

結局のところ、DockerマシンはVMをC:\ Users\username\.docker\machine\machines\defaultに作成します。画像をコミットすると、この場所のVMのサイズが大きくなります。 Windows以来、Cドライブ上のスペースの贅沢を買う余裕はありません。

デフォルトのマシンの場所を変更する方法はありますか?

58
shrivb

これは、Windows 7で私にとって完璧に機能したものです。

  1. MACHINE_STORAGE_PATH環境変数を、Dockerマシン/ VM、キャッシュなどに使用する場所のルートとしてセットアップします。
  2. Docker Toolboxをインストールする
  3. Dockerクイックスタートターミナルを実行する

Docker Toolboxは、MACHINE_STORAGE_PATHが指す場所にすべてのファイルを作成します。

更新:

新しいストレージパスを使用して新しいVMを作成することは理想的ではないことに注意してください。Dockerクイックスタートターミナルスクリプトは、「default」という名前以外のものでは動作しないようです。

C:ドライブにVMが既にある場合、最も簡単なことは、Oracle VirtualBoxに移動して「デフォルト」VMを削除し、Docker Toolboxをアンインストールし、C:\を削除することです。 Users\<username> .docker \をクリックし、上記の3つの手順を実行します。

注:Docker Toolboxをアンインストールおよび再インストールする必要はありません。しかし、私はそれなしではテストしていません。

更新

Docker証明書も移動するには、DOCKER_CERT_PATH変数を新しいドライブのパスを指すように設定します。ヒントをくれた@Nutleに感謝します。

50
Rajesh J Advani

.dockerディレクトリを別のドライブに移動し、その接続点を作成できます。

通常のショートカットは機能しないことに注意してください。

例えば:

.dockerディレクトリをC:\Users\usernameからD:\に移動します

そして実行:

C:\Users\username>mklink /j .docker D:\.docker
Junction created for .docker <<===>> D:\.docker
31
vlado

2015年以来、現在(2017年6月)Hyper-Vがあります。 VHDXファイル

Docker for Windows 1.13.0、2017-01-19(安定) を参照してください:

イメージとホストにマウントされていないボリュームを含むVHDXファイルを移動できます(UIの「詳細」タブを使用)

これにより、%APPDATA%\Docker\settings.jsonが次の行で変更されます。

"MobyVhdPathOverride":"C:\\Users\\Public\\Documents\\Hyper-V\\New folder\\MobyLinuxVM.vhdx"

https://cdn-enterprise.discourse.org/docker/uploads/default/optimized/2X/6/6193445cf15811ce18317c727af258adb2d16c9d_1_690x447.jpg

詳細はこのスレッド を参照してください。


元の答え

現在2015年、docker-machineは%USERPROFILE%の使用を強制します。
を参照 libmachine/mcnutils/utils.go#L17-L25

issue 499 でコメントされているように:

それまでの間、ユーザーは.docker/machine/*ファイルの保存場所をどのように指定できますか?

コマンドラインで--storage-pathを指定するか、環境変数MACHINE_STORAGE_PATHを使用します。

PR 1941 で実装されていることがわかります)

Joost Den Boer 指摘 コメント内

Macで '-s <path>'を試してみたところ、うまくいくようです。
明らかでないかもしれないのは、pathオプションがコマンドの前にあることです.
docker-machine -s /Volumes/other/location' create --driver=virtualbox」を実行すると、別の場所に新しいVirtualBoxイメージが作成されました。

28
VonC

VirtualBoxグラフィックインターフェイスを使用して、ファイルdisk.vmdkを再配置します。

enter image description here

  1. ファイルC:\Users\{myUsername}\.docker\machine\machines\default\disk.vmdkを別のフォルダー、たとえばF:\docker-image\にコピーします。
  2. VirtualBoxを開き、default VMを選択して、Settingsを開きます。
  3. Storageを開き、現在のdisk.vmdkを選択してリリース(または削除)します。
  4. Choose Virtual Hard Disk File...をクリックし、F:\docker-image\でコピーしたファイルを検索します
  5. 警告が発生します。VirtualBoxが古いVM UIDを訴え、メニューFileに移動し、Virtual Media Manager...を選択して古いdisk.vmdkを解放または削除します
  6. 4.を再試行して、完了です!
  7. ご使用の環境で必要な場合は、boot2docker.iso、Snapshot Folder、Video Captureの再配置も行います。
16
ron190

Dockerクイックスタートターミナルを実行するときに、これら2つのコマンドを入力します。

新しい場所は「D:\ docker」で、新しいマシン名は「docker1」だと思います

export MACHINE_STORAGE_PATH=D:\\docker

docker-machine create --driver=virtualbox docker1

これにより、指定した名前の新しいマシンが新しい場所に作成されます。

13
ProEns08

MACHINE_STORAGE_PATH環境変数メソッドを機能させることができませんでした。マシンを最初に初期化するときに、証明書が見つからないという苦情が続きました。まだWindows 7では、docker-toolboxを使用する必要があります。

私は問題を回避しました:

  1. Docker Toolboxのアンインストールとマシンの再起動
  2. 管理者プロンプトを開きます(コマンドプロンプトを検索、Shiftキーを押しながら[管理者として実行]を選択)
  3. %USERPROFILE%から.dockerを削除:rmdir/S%USERPROFILE%.docker
  4. 別の場所に.dockerというフォルダーを作成します:mkdir a:\。docker
  5. mklink/J%USERPROFILE%.docker a:\。docker
  6. 管理コマンドプロンプトを閉じる
  7. Docker Toolboxを再インストールする
  8. bootstrapすべてにDockerクイックスタートターミナルリンクを使用します。
  9. Kitematicも開くことができるようになりました(最初のエラーで「仮想ボックスを使用」オプションを選択する必要がありましたが)。
8
paulecoyote

上記のソリューションのいずれかで少し問題がありましたが、これは私のために働いたものです:

  • MACHINE_STORAGE_PATH環境変数を定義して、目的のディレクトリ/フォルダーを指すようにします。
  • 通常どおりdocker-toolboxをインストールします。これで問題がなければうまくいきますが、私にとっては.dockerディレクトリ内にインストールしていました。
  • これを修正するために、Usersディレクトリから.dockerフォルダーと共に作成されたデフォルトのマシンを停止して削除しました。
  • start.shスクリプトを編集し、上部に次の行を追加しました。

例えば.

export MACHINE_STORAGE_PATH=D:\\Docker
  • Dockerクイックスタートターミナルショートカットを実行し、目的のフォルダー内にデフォルトのマシンを再構築します
3
DrGun

これらの回答の多くはデータ不足であり、少なくとも私の環境では機能しませんでした:win10 PRO、docker desktop community 2.0.0.3。最後に、この方法でこの問題を解決しました。

  1. dockerのアンインストール

  2. hyper-Vマネージャーを開きます(WINキーを押してから「Hyper」と入力します)

  3. デフォルトの仮想ハードディスクの場所Hyper-V設定で変更し(VM設定ではなく)、確認します

  4. ドッカーをインストールする

  5. docker設定の詳細オプションでディスクイメージの場所を確認してください

0
lengxuehx

これらの回答は、最新リリースの時点では古くなっています。場所は、設定のユーザーインターフェイスで構成できます。

https://github.com/docker/for-win/issues/3

0
Paul Knopf

以下の内容でc:\ programdata\docker\config\daemon.jsonというファイルを作成します。ここで、e:\ imagesはすべての画像を保存する場所などです。Dockerを再起動します。

{"グラフ": "e:\ images"}

これは魔法のように働いた

リファレンス- https://forums.docker.com/t/where-are-images-stored/9794/11