-
Notifications
You must be signed in to change notification settings - Fork 0
MS_DockerForWindows
- 戻る(コンテナ技術)
- Docker for Windows
- Docker Desktop for Windows
- Hyper-V / WSL → WSL2
Windows 上から、Linux コンテナである Docker(DNET_Docker.md)を
使うための製品
- Docker Toolbox(2015/8/12 リリース)から、ひたすら進化を続けている。
- 読んで字の如く Windows から Docker を利用するプロダクト
- 色々あって(、進化の中で十徳ナイフ化し)、入門者には理解が難しい。
- 昔は、Windows Server コンテナに関しては
フロント機能しか持っていなかった。 - 昨今では、Windows Server コンテナの機能も統合されるに至った。
- 昔は、Windows Server コンテナに関しては
- Windows 7 からは Docker for Windows を利用できないので、Docker Toolbox を利用する。
- Docker Toolbox は、VirtualBox の中で Linux コンテナを動作させる
というアーキテクチャ
Docker Toolbox の後継で、Windows 上から
Windows コンテナ や Linux コンテナ(Docker)を使うためのフロントエンド製品
- Windows のコンテナ
- Windows Server コンテナのフロントエンド
- Hyper-V コンテナのフロントエンド
- Linux コンテナ
- Hyper-V コンテナ上の Docker のフロントエンド
18.02.0-ce 以降
- 正式には、Docker for Windows Desktop with integrated Kubernetes らしい。
- 読んで字の如く Docker for Windows 上の Linux コンテナで K8s を実行できるようになる。
- 2.0.0.2 から Docker Desktop for Windows にリネームされた。
- 以下が可能になる。
- Windows Server コンテナ自体を実行可能
- WSL2上で Docker を実行可能
更に、WSL2 上で Docker を動作することができるよう進化。
補足(この変遷を 1 表で): 「十徳ナイフ化して分かりにくい」という
指摘のとおりなので、Linux コンテナをどこで動かしているかという
軸で整理する。
世代 Linux カーネルの実体 性能・使い勝手 Docker Toolbox VirtualBox の VM 遅い。ファイル共有が苦しい Docker for Windows Hyper-V の MobyLinuxVM 改善。ただし Hyper-V 必須(Home 不可) WSL2 Backend WSL2 の軽量 VM 最も速い。Home でも可 「どこかに Linux カーネルが必要」という原則
(コンテナ技術を参照)は一貫しており、
その置き場所が VirtualBox → Hyper-V → WSL2 と移ってきた
と理解すればよい。
- Visual Studio Tools for Docker(
MS_VSToolsForDocker.md) - Visual Studio Kubernetes Tools(
MS_VSKubernetesTools.md) - Visual Studio Code Docker extension(Visual Studio Code)
ザックリ、以下の手順でインストールできる。
- 事前に Hyper-Vを有効化しておく
- https://www.docker.com/products/docker-desktop からダウンロード
- インストーラを使用して、インストールすれば OK。
補足(現在は Hyper-V の事前有効化は不要): 現在の
Docker Desktopは
WSL2 バックエンドが既定であり、
- Hyper-V の有効化は不要(「仮想マシン プラットフォーム」だけでよい)
- Windows Home Edition でも動作する
ようになっている。上記手順は Hyper-V バックエンド時代のものである。
# コンテナを探す
docker ps
# コンテナに接続
docker exec -it <containerName> /bin/bash
# コンテナ上のファイルをローカルに保存する
docker cp <containerName>:/usr/local/apache2/logs/httpd.pid C:\Users\user\Documents
# ローカルファイルをコンテナ上にコピーする
docker cp C:\Users\user\Documents\mod_httpd.pid <containerName>:/usr/local/apache2/logs/補足(
docker execとdocker attachの違い): 混同されやすいので
整理しておく。
コマンド 内容 docker exec -it <c> bash新しいプロセスを起動して入る。抜けてもコンテナは動き続ける docker attach <c>PID 1 のプロセスに接続する。 Ctrl+Cでコンテナが停止する調査目的なら必ず
execを使う。
attachで抜けようとして本番コンテナを止めてしまう事故が定番である
(attachから安全に抜けるにはCtrl+PCtrl+Q)。
-
Docker for Windowsで快適な環境を得るまでの そこそこ長い闘い - Qiita
https://qiita.com/YukiMiyatake/items/73c7d6c4f2c9739ebe60 -
WSL 2 対応 Docker Desktop for Windowsを使うための手順 - Qiita
https://qiita.com/zembutsu/items/22a5cae1d13df0d04e7b -
Docker for Windowsがコレジャナかった | To Be Decided
https://www.kaitoy.xyz/2016/07/31/docker-for-windows/
-
「Docker Toolbox」リリース。MacOS/Windows対応の新インストーラ
https://www.publickey1.jp/blog/15/docker_toolbox.html -
Kubernetesを統合した「Docker for Windows Desktop with integrated Kubernetes」リリース
https://www.publickey1.jp/blog/18/docker_for_windows_desktop_with_integrated_kubernetes.html
- 無償の「Docker for Windows」で手軽にLinuxコンテナを利用する
http://www.atmarkit.co.jp/ait/articles/1609/01/news053.html
- Docker(
DNET_Docker.md) - Dockerコマンド(
DNET_DockerCommand.md) - Dockerファイル(
DNET_Dockerfile.md) - Dockerコンポーズ(
DNET_DockerCompose.md) - Dockerレジストリ(
DNET_DockerRegistry.md)
Tags: 移行, Windows, Hyper-V, 仮想化, コンテナ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。