Docker Toolbox for Windows の使い方

普段使いの家の端末を Windows にしてみたので、使い勝手改善中。 Docker Toolbox for Windows についてのメモ。 インストールについては公式ドキュメントを参照 Install Docker Toolbox on Windows VirtualBox がインストールされ、ゲスト OS としての Linux を docker machine として使います。 デスクトップに「Docker Quickstart Terminal」というショートカットが作成されており、これを開くと

"C:\\Program Files\\Git\\bin\\bash.exe" --login -i "C:\\Program Files\\Docker Toolbox\\start.sh"

というコマンドが実行されます。 この bash 環境では /

C:\\Program Files\\Git

になっており、mingw64/bin/usr/bin/ に各種 unix コマンドが入ってます。 start.sh は docker-machine が存在しなければ作成し、起動していなければ起動して docker-machine env で得られる環境変数をセットした状態にしてくれます。 ですからこの bash 内ではすぐに docker コマンドでコンテナの起動などができます。 docker コンテナは boot2docker イメージから作られた仮想サーバー内で実行されるため、コンテナの使用するメモリなどはこの仮想サーバーの上限の影響を受けます。 次のように docker-machine create を行うことでメモリやストレージのサイズを指定可能です。もちろん、作成後に直接 VirtualBox 上の設定を変更することも可能。

$ docker-machine create --driver virtualbox --virtualbox-memory 2048 --virtualbox-disk-size 40000 {machine-name}

「Docker Quickstart Terminal」を使わずともコマンドプロンプトや PowerShell からも操作可能です。もちろん Cmder でも。docker コマンドを使うには環境変数の設定が必要ですが、docker-machine env {machine-name} で出力されるものを指定します。 Windows ではコメントとして次のような出力もされます。

REM Run this command to configure your shell:
REM     @FOR /f "tokens=*" %i IN ('docker-machine env') DO @%i

2行目の @FOR /f "tokens=*" %i IN ('docker-machine env') DO @%i をコピペするだけで一括で設定されます。

docker run -it -d -P --rm nginx

とすれば nginx コンテナが起動され docker ps で port がわかる(docker port CONTAINER_NAME でも可)

CONTAINER ID  IMAGE  COMMAND                 CREATED        STATUS        PORTS                  NAMES
f8942efa52e8  nginx  "nginx -g 'daemon ..."  7 seconds ago  Up 3 seconds  0.0.0.0:32768->80/tcp 
 modest_volhard

docker-machine ip で docker ホストのIPアドレスがわかるため、これを組み合わせることで http://192.168.99.100:3276/ で nginx にアクセスできることがわかる。

Built with Hugo
テーマ StackJimmy によって設計されています。