2015/04/17

Docker Client for Windows > How to Build by Go

先日、@IT さんで、Docker on Azure な記事を書きました。この中で、Docker Client for Windows (このときはバージョン 1.5) についてもちょっと触れましたが...

所要時間わずか10分で「Docker」を体験しよう―Azureで始めるDocker入門  (2015/04/13)
[URL] http://www.atmarkit.co.jp/ait/articles/1504/13/news020.html

4/16 の Docker 1.6 リリースで、Docker Client for Windows がめでたく「Windows Client Preview」として Official Release に入ったみたいです。

Azure Blog > Virtual Machine > Docker Client for Windows is Now Available
[URL] http://azure.microsoft.com/blog/2015/04/16/docker-client-for-windows-is-now-available/

Docker > Docker 1.6: Engine & Orchestration Updates, Registry 2.0, & Windows Client Preview
[URL] http://blog.docker.com/2015/04/docker-release-1-6/

@IT さんの記事では、ヒント的なことしか書きませんでしたので、Go によるビルド方法を詳しく...
Docker Client for Windows のインストールは、Windows ユーザーの多くが期待しているような Setup.exe や .msi での提供ではありません。

Azure Blog とか、そのリンク先とかでは、Docker Client for Windows のインストール方法が親切に説明されていません。Chocolatey (http://chocolatey.org/packages/docker) のパッケージでクライアントのみをインストールする方法と、Boot2Docker (http://boot2docker.io/) で Windows で動く Docker (その実態は VirtualBox 上の Linux の中の Docker) といっしょに丸ごとインストールする方法が紹介されているみたいですが、Boot2Docker は私は試していません。何も考えずに、Boot2Docker を入れちゃうと、既にある仮想環境と競合しちゃうかもです。Chocolatey の方法は後ほど。

ここでは @IT の記事で紹介した Go (https://golang.org/) によるソースからのビルド手順をメモしておきます。ネタ元は、How to compile Docker on Windows (https://ahmetalpbalkan.com/blog/compiling-docker-cli-on-windows/) です。

・・・
Go for Windows (https://golang.org/doc/install#windows) をインストール



Git for Windows (http://git-scm.com/download/win) をインストール。これは、UNIX シェルのエミュレーター (MINGW32)+Git 環境です。

Git Bash を探して起動。

次のとおりに実行して、ビルド開始。

git clone --depth 1 https://github.com/docker/docker.git /c/go/src/github.com/docker/docker
cd /c/go/src/github.com/docker/docker
export GOPATH=/c/go:/c/go/src/github.com/docker/docker/vendor
export DOCKER_CLIENTONLY=1
chmod +x hack/make/.go-autogen && hack/make/.go-autogen
cd docker
go build

カレント ディレクトリに docker.exe が出来るので、使いやすい場所にコピーして、コマンドプロンプトから実行。Git for Windows の MINGW32 シェルからも使えますが、普通のコマンドプロンプトからも使えます。Git for Windows は、あくまでもソースから docker.exe をビルドするために使っただけ。

Docker Client の Client API と Docker Engine の Server API は一致している必要があります。既定のままビルドすると、Client API バージョン 1.19 でした。

Docker Client で操作する相手が例えば、Server API バージョン 1.17 だったら、ソースの api\common.go を開いて、1.19 を 1.17 に書き換てからビルドします。  これが、@IT さんの記事で書いてたこと。Chocolatey や Boot2docker の Docker Client だと、こういった調整ができるのか分かりましぇん。

 ・・・

ついでに。Git for Windows をインストールすると、もれなく OpenSSL が使える環境が手に入ります。これで Azure や Linux で使う証明書を準備できます。例えば、「Azure 上の Linux における SSH の使用方法」(http://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-linux-use-ssh-key/) で説明されている SSH 接続用の証明書とか。

openssl を実行すると、"Unable to load config info from /usr/local/ssl/openssl.cnf" というエラーが出ますが、これは、"-conf C:\Program Files (x86)\Git\ssl\openssl.cnf" (x64 環境の場合) を指定して実行することで回避できますです。はい。





Docker Client for Windows > How to install by Chocolatey

0 件のコメント: