VMware内でdockerを実行することは可能ですか?


24

開発のニーズに合わせてvmwareワークステーションを実行し、diff環境用に異なるVMを維持する必要があります。

Dockerはコンテナでdiff環境を実行できるようです

  1. Windows 10 x64 VM内でdockerを実行し、異なるイメージとコンテナーを使用してコードを開発、ビルド、テストできますか?(DockerがVirtualBoxを使用している間にVMware Workstationで開発環境を実行していることを思い出してください)

  2. このアプリ(コード+データベース+ Web API + .....)を本番環境に出荷/使用するにはどうすればよいですか?プロダクションマシンでdockerを実行する必要がありますか?

明確にしてください。

更新

VMWareとは、VMWareワークステーションプロを意味します。

回答:


14

はい、VMでDockerを実行することは完全に可能です。Dockerは軽い仮想化ソリューションであり、ハードウェアを仮想化しないため、ネストされたVMに典型的な問題の影響を受けません。

ただし、VMwareのdev-env VMをVirtualBoxのDocker VMに何らかの方法で接続する必要があるため、ポートバインディングは少し難しい場合があります。

ホストのフォルダーをDockerコンテナー内のサービスに公開する場合にも問題が発生する可能性があります。Windowsのファイルシステムは、アクセス許可の粒度の点でLinuxのシステムに比べて制限されており、一部のサービスはそれを好まない。(この問題はDocker固有のものではありません)

一般的に、アプリは運用環境でDockerにロックされません。Dockerizedサービスは、通常のサービスが通常行うことと同じように、ネットワークを介して世界と通信します。ただし、Docker(または、より一般的にはクラウド)を念頭に置いて設計されたアプリは、障害に対する回復力が高く、保守が容易です。


6

このブログでは、WindowsでVMWare Workstationを使用してDockerを使用する方法について詳しく説明しています。Windows 7を使用することもできます。

https://stefanscherer.github.io/yes-you-can-docker-on-windows-7/

最初にWindows用のChocolateyパッケージマネージャーをインストールします(これは1行のコマンドです)

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

次に、VMWareワークステーションを使用するためにDockerをインストールします

choco install -y docker  
choco install -y docker-machine  
choco install -y docker-machine-vmwareworkstation  

デフォルトの仮想マシンを作成する

docker-machine --native-ssh create -d vmwareworkstation default  

環境変数を設定する

docker-machine env | iex

これで、すべての準備が整いました。


優秀な!これを共有してくれてありがとう。PS:最後の行はPowerShellで、cmdで機能する「| iex」なし
Dmitry Gusarov

:Chocolateyはこれが起点よかった、私には新鮮でしたhanselman.com/blog/...
ccook

1
:念のために誰がリンクコマンド「デフォルトのVMを作成する」でなければなりません読まずにこれを試してみましたdocker-machine --native-ssh create -d vmwareworkstation default(「 - 」注行方不明)
ニール・

2
  1. はい、Windowsでdockerを実行できます。VMWare上のWindowsも動作します。VMWare上のLinuxサーバーでdockerを実行します。
  2. 最も賢いのは、実稼働マシンにもドッカーを配置することですが、コンテナからデータをコピーすることも可能です。私はそれをお勧めしません。
    を使用docker saveして、Dockerイメージをファイルに保存できます。
    同じコンテナ内で複数のアプリケーションを実行することはお勧めできず、コンテナ内にデータを保存することはお勧めできません。そのためにボリュームを使用することをお勧めします。

回答いただきありがとうございますが、明確にしてください「VMWare上のWindowsも動作します」と言いましたが、「VMWare上のDockerも動作します」という意味ですか?
ハムザアーメドジア

@HamzaAhmedZia "VMWare"正確には何ですか?ESXi?ワークステーション?具体的に質問を編集してください。ワークステーションは、LinuxおよびWindowsにのみ存在します。
ラムハウンド

@Ramhound私はワークステーションを意味します。更新された質問
Hamza Ahmed Zia

@HamzaAhmedZiaですので、Workstationのコンテキストでは、この回答の著者は、Windows VMWare Workstation VM内でDockerを実行できることを示しています。
ラムハウンド

@Mikaelコンテナからデータをコピーすることはお勧めしないと言っているので、本番環境への発送に関する推奨事項は何ですか?
ハムザアーメドジア

0

dockerホスト(LinuxまたはWindows)には大きな違いがあります:

  • Linuxホストでは、あなたが問題なく任意のコンテナを標準のLinux、そしてドッカエンジンをインストールして実行することができ、そのため、VMWareのワークステーション内の任意の仮想化技術を必要としません。
  • Windowsホストは、ボンネットの下に、それは(に詳細ハイパーVのLinux VMを作成するため、さまざまな要件がありhttps://rancher.com/the-similarities-and-differences-between-windows-and-linux-containers/

Vmware WorkstationのWindows Dockerホスト(物理Windows)には、ネストされたHyperV Linux VMがあります!これは大きな問題ではありません。ネストされた仮想化を有効にするよう注意してください。

フランソワ


Windows Docker for WindowsをWindowsコンテナモードで実行し、LCoWをサイドバイサイドで使用している場合、HyperV VMをホストするWindowsに関するその点は正しくありません。他の問題もありますが、ホストOSに基づくDockerの不可知論に関するリンク記事のスタンスは、Moby ProjectがWin 10のWindowsコンテナーベースのdockerに向かっている場所に基づいて、せいぜい近視眼的です。しかし、最先端はまだ血を引いており、最先端だけの危険レベルに引き下げられていません。この時点で、毎日の運転手として準備が整うまで、さらに6か月かかります。
鉄人の鬼

0

Dockerコンテナを実行すると、ポートバインドの問題が発生します。

仮想マシン内でdockerを実行するのは良い習慣ですか?参考のためのアーキテクチャ

ホストOS-> VirtualMachine->ハイパーバイザー->サーバーOS-> Docker

それは良い練習です.. :)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.