webdevqa.jp.net

Windows Server 2016上のLinux Dockerコンテナー

Windows Server 2016でLinux Dockerコンテナーを実行する方法は何ですか? Docker for Windowsを使用すると、Windows 10で簡単に実行できます。DockerToolboxをインストールして、組み込みのコンテナー機能をすべて無視する唯一の方法はありますか?

13
Natalia

W2016でLinuxコンテナーを使用することが可能です。それは少しハックですが。ユーザー " Algore "で説明 here ですが、もちろんこの回答にコピーしました。

  • 「Docker for Windows」をダウンロード: https://docs.docker.com/docker-for-windows/

  • Windows 10 Proに「Docker for Windows」をインストールします。

  • Windows 10マシンからC:\Program Files\DockerをServer 2016ボックスのC:\Program Filesにコピーします。

  • W2016ボックスでinstall-windowsfeature hyper-v,containersを実行します

  • これらのレジストリエントリをファイルにコピーして、Server 2016ボックスにインポートします(reg import)。

- -開始 - -
Windowsレジストリエディターバージョン5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Docker Inc.]

[HKEY_LOCAL_MACHINE\SOFTWARE\Docker Inc.\Docker]

[HKEY_LOCAL_MACHINE\SOFTWARE\Docker Inc.\Docker\1.0]
"AppPath" = "\" C:\ Program Files\Docker\Docker\Docker for Windows.exe\""
"BinPath" = "\" C:\ Program Files\Docker\Docker\resources\bin\""

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\DockerService]
"EventMessageFile" = hex(2):43,00,3a、00,5c、00,57,00,69,00,6e、00,64,00,6f、00,77、\ 00 、73,00,5c、00,4d、00,69,00,63,00,72,00,6f、00,73,00,6f、00,66,00,74,00,2e、00、\ 4e、00,45,00,54,00,5c、00,46,00,72,00,61,00,6d、00,65,00,77,00,6f、00,72,00,6b、\00、36、00、34、00、5c、00、76、00、34、00、2e、00、30、00、2e、00、33、00、30、00、33、00、31、00 、\ 39,00,5c、00,45,00,76,00,65,00,6e、00,74,00,4c、00,6f、00,67,00,4d、00,65,00、 73、\ 00,73,00,61,00,67,00,65,00,73,00,2e、00,64,00,6c、00,6c、00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\com.docker.service] "Type" = dword:00000010 "Start" = dword:00000002 "ErrorControl" = dword:00000000 "ImagePath" = hex(2):22,00,43 、00,3a、00,5c、00,50,00,72,00,6f、00,67,00,72,00,61,00、\ 6d、00,20,00,46,00,69、 00、6c、00、65、00、73、00、5c、00、44、00、6f、00、63、00、6b、00、65、\ 00、72、00、5c、00、44、00 、6f、00、63、00、6b、00、65、00、72、00、5c、00、63、00、6f、00、6d、00、\ 2e、00、64、00、6f、00、 63,00,6b、00,65,00,72,00,2e、00,73,00,65,00,72,00,76,00,69、\ 00,63,00,65,00,22 、00、00、00
"DisplayName" = "Docker for Windows Service"
"ObjectName" = "LocalSystem"
"Description" = "Run Docker for Windows backend service"
- -終わり - -

Docker for windows.exeを自動的に起動する場合は、currentversion\runまたはスケジュールされたジョブにエントリを追加できます。

  • コンピューターを再起動し、PowerShellスクリプトを実行しますC:\Program Files\Docker\Docker\Resources\mobylinuxvm.ps1 -Create

このps1ファイルを見ると、さまざまなオプションを設定できることがわかります。以下のWebサイトを参照してください。

https://docker-saigon.github.io/post/Docker-Beta/
https://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/

  • com.docker.serviceを開始する前に、Dockerサービスstart-service com.docker.serviceC:\Program Files\Docker\Docker for Windows.exe)が実行されていることを確認してください

サーバーコアで実行していて、トレイアイコンがない場合は、設定の取得(またはプログラムデータのjsonの変更)が開始された後に通知が表示されたら、[プライバシー設定の変更]をクリックします。

物事を試したり再構築したりするときに問題が発生した場合は、C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1ファイルで、C:\programdataなどの設定を削除する場所を確認してください。 Docker関連のものがすべて削除されるため、スクリプトを実行しないことをお勧めします。それを使ってください。

7
Boggin

Stefan Schererによる this によると、Server 2016でLinuxコンテナを実行することが可能です。手順は次のとおりです。

Hyper-VでLinux Dockerマシンを作成する

マルチアーキテクチャを試す場合は、docker-machineを使用して、Hyper-Vで実行されるLinux Dockerエンジンを作成します。いくつかの既知の問題があるため、すべてをセットアップするスクリプトを用意しました。

C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1

このPowerShellスクリプトは、Dockerマシンを作成し、Dockerエンジンを最新に更新して、Windows DockerクライアントがLinux Dockerエンジンと通信できるようにします。

Linux Dockerマシンを使用する

管理者としてPowerShellターミナルを開き、Linux Dockerマシンを選択します

docker-machine env --Shell powershell | iex

最初のbusyboxコンテナを実行して

docker run -it busybox uname -a
5
Dave

残念ながら、現在のところ「Docker for Windows」ツールを簡単にインストールすることはできません。このインストーラーは、薄いVM MobyLinuxと呼ばれるもので、Windows Server 2016でLinuxコンテナーを実行できるようにします。 hackyインストール試行 ( Dockerフォーラムで私は試していません。

参考までに、「Docker for Windows」の舞台裏で何が行われているかについての 良い議論 があります。

4
William Denman

Windows Server 2016にDockerをダウンロードしてインストールするだけ https://www.docker.com/docker-windows
Hyper-Vを使用してVMとしてWindows Server 2016を実行する場合は、必ずこのMSドキュメントを確認してください https://docs.Microsoft.com/en- us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

1