Windows¶
注釈
今回の Docker のリリース(1.9)から、Boot2Docker コマンドライン・ツールに換わり、Docker Toolbox (ツールボックス)が採用されています。Docker Toolbox を使い、Docker Machine のような Docker ツールをインストールします。
Docker を Docker Toolbox を使いインストールします。Docker Toolbox には次の Docker ツールが含まれます。
- Docker Machine を動かす
docker-machine
バイナリ - Docker エンジンを動かす
docker
バイナリ - Docker Compose を動かす
docker-compose
バイナリ - Docker GUI の Kitematic (カイトマティック)
- Oracle VM VirtualBox(バーチャルボックス)
Docker デーモンは Linux 固有の kernel 機能を使う為、Windows 上で Docker をネイティブに実行できません。そのかわり docker-machine
を使い、仮想マシン(VM)の作成と接続が可能です。このマシンは Linuxの仮想マシンであり、自分の Windows 上の Docker ホストとなります。
Docker 仮想マシンとは、Docker デーモンを Windows 上で動かすための軽量な Linux 仮想マシンです。VirtualBox は仮想マシンを RAM から実行し、24MB 程度をダウンロードし、起動まで約5秒です。
動作条件¶
Docker を実行するには、Windows 7 以上で動作する PC が必要です。Windows のバージョンは次のようにして確認します。
- Windows のスタートメニューを右クリックし、「システム」を選びます(あるいは、コントロールパネルからシステムを開きます)。
サポートされていない Windows のバージョンだった場合、Docker を試すには OS のアップグレードをご検討ください。
- CPU が 仮装化技術 をサポートしていること、BIOS の設定で仮想化をサポートしていること、Windows によって認識されていることを確認します。
Windows 8, 8.1, 10 の場合¶
「スタート」から「タスクマネージャ」を選びます。Windows 10 の場合はクリックして詳細が出ます。「パフォーマンス」タブを探し、「CPU」の仮想化の項目が有効になっているのを確認します。
仮想化がシステム上で有効でなければ、PC メーカーの指示(マニュアル等)に従って有効化してください。
Windows 7 の場合¶
Microsoft® のハードウェア支援による仮想化の検出ツール を実行し、画面の指示に従います。
注釈
Docker が動くホストを持っており、Docker Toolbox のインストールをしたくない場合は、非公式 Windows パッケージ・マネージャの Chocolately を使い docker.exe
をインストールできます。詳細な情報は Chocolatey にある Docker パッケージ をご覧ください。
インストール前に重要な概念を学ぶ¶
Linux 上への Docker のインストールにおいて、自分の物理マシンとはローカルホストと Docker ホストの両方を意味します。ネットワークでは、ローカルホストは自分のコンピュータを意味します。Docker ホストはコンテナを実行するためのコンピュータです。
典型的な Linux インストールは、自分のローカルホスト上で直接 Docker クライアント、Docker デーモン、そして、あらゆるコンテナを動かします。つまり、Docker コンテナは localhost:8000
や 0.0.0.0:8376
のような一般的なポートを割り当てて使います。
Windows のインストールでは、Linux 仮想マシンの中に docker
デーモンを動かします。Windows の Docker クライアントを使い、Docker ホストの仮想マシンと通信します。このホストの中でコンテナは実行されます。
Windows では、Docker ホストのアドレスは Linux VM のアドレスです。仮想マシンを docker-machine
で開始すると、IP アドレスが割り当てられます。コンテナを起動すると、コンテナ上のポートは仮想マシン上のポートに割り当てられます。このページの練習を通して、この仕組みに慣れましょう。
インストール¶
VirtualBox を実行中の場合、インストーラを実行する前に停止する必要があります。
- Docker Toolbox のページに移動します。
- インストーラのリンクをクリックします。
- インストーラーをダブルクリックして、Docker Toolbox をインストールします。
インストーラーは「Setup - Docker Toolbox」ダイアログを開きます。
- 「Next」を押して Toolbox をインストールします。
インストーラは標準インストールに対するカスタマイズ用オプションを提供しています。デフォルトは、Docker Toolbox の標準インストールです。
- Docker ツールのバイナリを
C:\Program Files\Docker Toolbox
にインストールします。 - VirtualBox をインストールします。あるいは、インストール済みであればバージョンアップを行います。
- プログラムのショートカットに Docker Inc. フォルダを追加します。
- 環境変数
PATH
を更新します。 - Docker Quickstart Terminal と Kitematic のアイコンをデスクトップに追加します。
ここでのインストールは、デフォルト設定を想定しています。
- 「Next」を「Ready to Install」ページが出るまで押します。
システム・プロンプトがパスワード入力を促します。
- 「Install」を押して、インストールを継続します。
完了すると、インストーラーは一般的な作業に関する表示を行います。
- 「Finish」をクリックすると終了します。
Docker コンテナの実行¶
Docker コンテナを実行するには、次のようにします。
- 新しい Docker 仮想マシンを作成(あるいは、既存のものを開始)
- 環境を新しい仮想マシンに切り替え
docker
クライアントを使ってコンテナの作成・読み込み・管理
マシンを作成してしまえば、好きなときに再利用できます。VirtualBox の仮想マシンのように、用途に応じた設定で使い分けます。
インストールしたツールを使うには2つの方法があります。Docker Quickstart Terminal (クイックスタート・ターミナル)を使うか、 シェル で操作します。
Docker Quickstart Terminal から使う¶
- デスクトップの「Docker Quickstart Terminal」アイコンをさがし、ダブルクリックで開きます。
アプリケーションは次の動作をします:
- ターミナル用のウインドウを開く
default
仮想マシンが無ければ作成し、仮想マシンを起動- ターミナルの環境がこの仮想マシンを示す
- セットアップの成功を確認するため、
hello-world
コンテナを実行します。
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
511136ea3c5a: Pull complete
31cbccb51277: Pull complete
e45a5af57b00: Pull complete
hello-world:latest: The image you are pulling has been verified.
Important: image verification is a tech preview feature and should not be
relied on to provide security.
Status: Downloaded newer image for hello-world:latest
Hello from Docker.
This message shows that your installation appears to be working correctly.
このメッセージ表示にあたり、Docker は次のステップを踏んでいます。
- Docker クライアントは Docker デーモンに接続します。
- Docker デーモンは「hello-world」イメージを Docker Hub から取得します(まだローカルにイメージがないのを想定しています)。
- そのイメージを使い、Docker デーモンは新しいコンテナを作成します。コンテナを実行すると、先ほど見たような出力をします。
- Docker デーモンは Docker クライアントに出力を流し込み、自分のターミナル上に送ります。
では、期待を持ちながら Ubuntu コンテナを実行しましょう。
$ docker run -it ubuntu bash
更なる例や考え方については、 ユーザガイド をご覧ください。
Windows コマンドプロンプト(cmd.exe)でDockerを使う¶
- コマンドプロンプト(cmd.exe)を起動します。
docker-machine
コマンドは環境変数 PATH
の中にある ssh.exe
を必要とします。この .exe
は MsysGit の bin
フォルダにあります。
- 環境変数
%PATH%
に追加するコマンドを実行します。
set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
- 新しい Docker 仮想マシンを作成します。
$ docker-machine create --driver virtualbox my-default
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env my-default
ここでは VirtualBox に新しい default
仮想マシンを作成します。
また、このコマンドはマシンの設定を C:\USERS\USERNAME\.docker\machine\machines `` ディレクトリに作成します。必要なのは、実行時に ``create
コマンドを一度実行するだけです。あとは、 docker-machine
を使って開始、停止、問い合わせできます。それだけでなく、コマンドライン上から仮想マシンを管理します。
- 利用可能なマシン一覧を表示します。
C:\Users\mary> docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
my-default * virtualbox Running tcp://192.168.99.101:2376
廃止予定の Boot2Docker アプリケーションをインストールしているか、あるいは Docker Quickstart Terminal を実行している場合は dev
仮想マシンが同様に表示されます。
- 新しい仮想マシンに対応する環境変数を取得します。
C:\Users\mary> docker-machine env --shell cmd my-default
- シェルから
my-default
マシンに接続します。
C:\Users\mary> eval "$(docker-machine env my-default)"
hello-world
コンテナを実行し、セットアップが正常かどうか確認します。
C:\Users\mary> docker run hello-world
PowerShell で Docker を使う¶
- Windows の PowerShell ウインドウを開きます。
- 環境変数 PATH に
ssh.exe
を追加します。
PS C:\Users\mary> $Env:Path = "${Env:Path};c:\Program Files (x86)\Git\bin"
- 新しい Docker 仮想マシンを作成します。
PS C:\Users\mary> docker-machine create --driver virtualbox my-default
- 利用可能なマシン一覧を表示します。
C:\Users\mary> docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
my-default * virtualbox Running tcp://192.168.99.101:2376
廃止予定の Boot2Docker アプリケーションをインストールしているか、あるいは Docker Quickstart Terminal を実行している場合は dev
仮想マシンが同様に表示されます。
- 新しい仮想マシンに対応する環境変数を取得します。
C:\Users\mary> docker-machine env --shell cmd my-default
- シェルから
my-default
マシンに接続します。
C:\Users\mary> eval "$(docker-machine env my-default)"
hello-world
コンテナを実行し、セットアップが正常かどうか確認します。C:Usersmary> docker run hello-world
Toolbox のインストールを学ぶ¶
Toolbox は Docker エンジンのバイナリを C:\Program Files\Docker Toolbox
にインストールします。Docker Quickstart Terminal を使うか、 default
仮想マシンを(Docker Machine で)手動で作成すると、Docker Machine はシステム上の C:\USERS\USERNAME\.docker\machine\machines\default
ディレクトリを更新します。このディレクトリに、仮想マシンに関する設定が置かれます。
Docker Machine を使い、システム上に複数の仮想マシンを作成できます。つまり、いくつも仮想マシンを作成すると、複数の仮想マシン用のディレクトリが作られます。仮想マシンを削除するには、 docker-machine rm <マシン名>
コマンドを使います。
Boot2Docker からの移行¶
これまで Boot2Docker を使っていた場合は、既に Dockerの boot2docker-vm
仮想マシンがローカルシステム上に存在しています。Docker Machine で古い仮想マシンを管理する場合は、移行が必要です。
- ターミナルか、システム上の Docker CLI を開きます。
- 次のコマンドを実行します。
$ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm docker-vm
docker-machine
コマンドを使い、対話式に仮想マシンを移行します。
docker-machine
サブコマンドは、boot2docker
サブコマンドと若干の違いがあります。次の表は docker-machine
サブコマンドとの互換性を比較したものです。
boot2docker |
docker-machine |
docker-machine の説明 |
---|---|---|
init | create | 新しい docker ホストの作成 |
up | start | 停止しているマシンの起動 |
ssh | ssh | コマンドの実行やマシンとの双方向 ssh セッション |
save | ー | 利用不可 |
down | stop | 実行中のマシンの停止 |
poweroff | stop | 実行中のマシンの停止 |
reset | restart | 実行中のマシンの再起動 |
config | inspect | マシン設定詳細の表示 |
status | ls | マシン一覧と状態の表示 |
info | inspect | マシンの詳細を表示 |
ip | ip | マシンの IP アドレスを表示 |
shellinit | env | シェルがマシンと対話するために必要なコマンドの表示 |
delete | rm | マシンの削除 |
download | ー | 利用不可 |
upgrade | uppgrade | マシン上の Docker クライアントを最新安定版に更新 |
Docker Toolbox のアップグレード¶
Docker Toolbox をアップグレードするには、 Docker Toolbox インストーラ をダウンロードし、再度実行します。
コンテナのポートをリダイレクト¶
もし興味があればですが、Docker デフォルト仮想マシンのユーザ名は docker
であり、パスワードは tcuser
です。最新バージョンの docker-machine
はホスト・オンリー・ネットワークアダプタをセットアップます。これはコンテナのポートにアクセスするためです。
コンテナの公開ポートに接続したい場合、次のように実行します。
$ docker run --rm -i -t -p 80:80 nginx
それから、アクセスするには nginx サーバが使っている IP アドレスを確認します。
$ docker-machine ip
おそらく IP アドレスは 192.168.59.103 のようなものですが、VirtualBox の DHCP 実装により変わります。
CMD の代わりに PuTTY でログイン¶
Docker Machine は自分の %USERPROFILE%\.ssh
ディレクトリに公開鍵と秘密鍵のペアを作成します。そのため、ログインのためには同じディレクトリにある秘密鍵を使う必要があります。秘密鍵を PuTTY が使う形式に変換する必要があります。 puttygen で変換できます。
puttygen.exe
を開き、(「File」->「Load」メニューから)秘密鍵を読み込みます(フィルタをAll Files (*.*)
に変更の必要があるかもしれません )。
%USERPROFILE%\.docker\machine\machines\<name_of_your_machine>\id_rsa
- 「Save Private Key」をクリックします。
- 保存したファイルを使い、 PuTTY で
docker@127.0.0.1:2022
にログインします。
アンインストール¶
Docker Toolbox は Windows の標準手順でプログラムのダウンロードができます。この手順で docker-install.exe
ファイルは削除できません。自分自身で削除する必要があります。
更に詳しく¶
Docker ユーザガイド を読み続けられます。 Kitematic GUI の使用に興味があれば、 Kitematic ユーザガイド をご覧ください。