kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

DockerToolboxでwindowsにてDockerを動かす

まだDockerについて、ちゃんと理解できていないながら、使うためにはどうするか。を学習中です。

DockerはLinuxで使えるように作られたため、元はMacでもvagrantの仮想環境で動作することを前提にToolboxで起動していたらしいです。

現在ではDocker for Macであれば、vagrantを使用しなくても使えるようになり、簡易的になったと思っています。

ではWindowsで使用するには、どうすればいいか。というのは、vagrant上の仮想環境で動作させることが標準のようです。(Windows10 ProfessionalであればHyper-VがあるためDocker for Windowsが使えるらしい)

Docker Toolboxをインストールすることで、必要なアプリケーションがインストールされます。

docs.docker.com

インストール自体は、実行ファイルから次々やってたら、入りました。(すでにvagrant環境は入っていたので、ちゃんと最初からいれているわけではないです)

起動

Docker QuickStartを起動することで、DockerMachineが起動します。起動しているかどうかは、lsコマンドで確認できます。

docker-machine ls

docker machineが起動している状態で、dockerコマンド等を実行していきます。

以前作成したdocker-composeファイルを使用して動作するか試してみたところ、問題なく動作しました。vagrant上で動作しているみたいですね。

Kitematicでの操作をよくみますが、自分の環境では100%になった後に画面が変わらずそのままになったため、使っていません。

Windows named pipe error: 指定されたファイルが見つかりません。 (code: 2)

Docker QuickStartを実行するまえに、docker-composeをしているとエラーでなにも実行されません。

 Windows named pipe error: 指定されたファイルが見つかりません。 (code: 2)

docker-machineが起動している状態で操作する必要があります。

UnicodeDecodeError

docker-compose.ymlとDockerfileがUTF-8で作成されていると、エラーが発生しました。

 UnicodeDecodeError: 'cp932' codec can't decode byte 0x83 in position 217: illegal multibyte sequence
[11368] Failed to execute script docker-compose

powershellで実行していますが、どうやらSJISでないとだめな模様です。

ファイルをSJISで保存しなおしたら、無事起動しました。

これでWindowsでも使えるかな。