最近Dockerが買収したKitematicを使ってMacのGUIでローカルDockerコンテナを立ち上げる
最近レガシー芸人から卒業することが決まったので、ここに来てやっとDockerを触り始めたところです(遅いっ)。
さて、Dockerを始めるに際して、色々調べていたんですが、
DockerコンテナをGUIで立ち上げてられるKitematicというツールがあって、最近Dockerに買収されたとのことです。
(ちなみにKitematicはカイトマティックと読むらしい)
Windowsはまだサポートされてなくて、近日対応予定とのこと。
今回はこれで「Jenkinsのimageからコンテナを立ち上げて、Jobを作って実行する」ところまでをやりたいと思います。
環境
- Mac OSX 10.9.5 Mavericks
- Kitematic 0.5.13
Kitematicのインストール
以下からzipをダウンロード。
Download Kitematic
展開して /Applications
ディレクトリに配置します。
アプリを起動して初期環境を整える、、、が、コンテナに接続できない
アプリを立ち上げると、初期設定が行われる。
ちなみにKitematicのアプリはReactで書かれているみたい。
初期設定は具体的には
- VirtualBoxが無ければインストール
- docker, docker-machineのバイナリを配置
をやっているよう。
事前準備要らずとか何たるホスピタリティ。
が、ここで問題が発生する。
99%まで準備ができたと表示されていたのが、エラー画面になる。
Cannot connect to the Docker Engine. Either the VM is not responding or the connection may be blocked (VPN or Proxy)
( ゚д゚)ポカーン
一応Known Issuesがあったので確認してみると、
Known Issues
それらしき物があったので試してみるも、createした後にアプリを起動しても真っ白なまま。
コンテナに接続できない場合の解決策
どうやらネットワーク起因のエラーっぽいので、調べてみるとルートを追加しろという人がいた。
Cisco Anyconnect VPN Collision · Issue #254 · kitematic/kitematic · GitHub
確かに、VPN接続するためにAnyConnectを入れているし該当しそうなので、ネットワーク周りを確認してみる。
docker-machineを確認してみる。
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM dev * virtualbox Running tcp://192.168.99.100:2376
docker-machineは生成されていて、そいつは192.168.99.XXXのネットワークにある。
一方ネットワークインターフェースは
$ ifconfig ... vboxnet1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 0a:00:27:00:00:01 inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255 ...
つまりエラー内容からするに、Kitematicが用意したVirtualBoxのboxにつなぎにいけていないのでは。
なのでルーティングテーブルを確認してみる。
$ netstat -nr | grep 192.168 $
はい無いー。
というわけで以下のコマンドを打ちルートを追加。
$ sudo route -nv add -net 192.168.99 -interface vboxnet1
これでアプリを再起動して、ここで初めて初期設定が完了。
疲弊した。
使ってみる
早速コンテナを立ち上げてみる。
Kitematicを起動したらまずRecommendedなイメージが表示されているので、その中からJenkinsを選択し、「Create」を選択。
これだけでDockerコンテナが立ち上がり、すぐにJenkinsが使えるようになります。
すごい。
「Web Preview」のサムネをマウスオーバーして見ると、「Open in Browser」と出るので、クリックするとブラウザでJenkinsの画面が開きます。
JenkinsのJobを作りたいところですが、その前にJenkinsがキックするスクリプトを用意したいので、適当なスクリプトを以下のようにして用意します。
ちなみにJenkinsのホームディレクトリは /var/jenkins_home
です。
$ docker exec -it jenkins bash jenkins@fef30c1fcb42:/$ mkdir /var/jenkins_home/scripts jenkins@fef30c1fcb42:/$ cat << EOT > /var/jenkins_home/scripts/hello.sh > #!/bin/bash > echo Hello world. > EOT jenkins@fef30c1fcb42:/$ cat /var/jenkins_home/scripts/hello.sh #!/bin/bash echo Hello world.
後はブラウザからJenkinsでJobを作って実行してあげれば終了。
問題点
RecommendedされているイメージはCreateすると立ち上がるところまでやってくれるんですけど、イメージを検索して検索結果のイメージからコンテナを作ると、コンテナは生成されるが立ち上がらず、CLIでやっても上がらない現象が起こりました。
現状、アプリがベータだし、リポジトリのIssueは100個近く解決されてない状態なので、だるくて調べるのをやめましたw
まあでもDockerに買収されて、今後ちったあマシにはなるとは思います。
結論
GUI(゚⊿゚)イラネ