web-dev-qa-db-ja.com

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

私は自分の開発者のニーズに合わせてVMwareワークステーションを実行しており、diff環境用には異なるVMを管理する必要があります。

Dockerはコンテナ内でdiff環境を実行することを許可しているようです。

  1. Windows 10 x64 VMの中で、dockerを実行して、コードの開発、構築、テストにさまざまなイメージやコンテナを使用できますか? (dockerがVirtualBoxを使用している間、私は自分の開発環境をVMware Workstationで実行していることを忘れないでください)

  2. このアプリ(code + database + web api + .....)をどのようにプロダクションに出荷/持ち込みますか?生産機械はdockerをうまく動かす必要がありますか?

明確にするのを助けてください。

更新

VMWareによって私はVMWareワークステーションプロを意味します。

18
Hamza Ahmed Zia

はい、VMでDockerを実行することは完全に可能です。 Dockerは軽い仮想化ソリューションです。ハードウェアを仮想化しないため、入れ子になったVMでよく見られる問題の影響を受けません。

ただし、VMwareのdev-env VMをVirtualBoxのDocker VMに何らかの方法で接続する必要があるため、ポートのバインドは少しややこしいかもしれません。

ホストのフォルダをDockerコンテナ内のサービスに公開したい場合にも問題が発生する可能性があります。 Windowsのファイルシステムはパーミッションの細分性の点でLinuxのものと比較して制限されており、いくつかのサービスはそれを好まない。 (この問題はDocker特有のものではありません)

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

12
gronostaj

このブログでは、VMWare Workstationを使ってWindows上で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"

それからDockerをインストールしてVMWareワークステーションを使う

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

デフォルトのVMを作成する

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

環境変数を設定する

docker-machine env | iex

今、あなたはすべて始める準備が整いました。

5
steampowered
  1. はい、あなたはWindows上でdockerを実行することができます。 VMWare上のWindowsも動作します。私たちはVMWare上のLinuxサーバ上でdockerを実行します。
  2. 最も賢いのはあなたの生産機械にもdockerを持つことですが、コンテナからあなたのデータをコピーすることは可能でしょう。私はそれをお勧めしません。
    dockerイメージをファイルに保存するのにdocker saveを使うことができます。
    同じコンテナー内で複数のアプリケーションを実行することはお勧めできません。また、コンテナー内にデータを保管することはお勧めできません。ボリュームを使用する必要があります。
2
Mikael Kjær

Docker Host(LinuxまたはWindows)には大きな違いがあります。

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

フランソワ

0
François YACOB