なおすけの落書き帳

毎日がエブリデイ。

Docker HTTP API (Remote API)を有効にするために

DockerホストマシンにHTTPでリクエスト飛ばして色々としたかったのですが、デフォルトだとUnix domain socketしか有効になっていないっぽい。

どうすればいいんかと調べたら、systemdの起動スクリプトにオプションを追加すればいいっぽい。

参考文献を参考に、/lib/systemd/system/docker.serviceに以下のような変更をしました。

:(略)
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
### ここの行を
ExecStart=/usr/bin/dockerd
### こうじゃ
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
:(略)

で、systemctl daemon-reloadsystemctl restart docker.service で再起動。
確認するには curl localhost:2375/version を叩けばいいです。

f:id:naosuke2dx:20171117010440p:plain:w300

こんな風に結果が返ってきます。

そこで「できた〜」となって実際に使おうとしたのですが、ホストマシンでdockerコマンドを使うとこんな感じに。

f:id:naosuke2dx:20171117010553p:plain:w300

[vagrant@localhost ~]$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

で、色々調べると、dockerコマンドはデフォルトではunix domain socketを使って通信をするっぽく、起動時の-Hオプションを与えたらsocketファイルがなくなるっぽい。*1
なので、こんな感じで起動スクリプトを修正。

:(略)
### ここの行を
ExecStart=/usr/bin/dockerd
### こうじゃ
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock
:(略)

で同じようにdaemon-reloadしてrestart dockerすればうまくいくようになりました。


参考文献

d.hatena.ne.jp

*1:環境変数DOCKER_HOSTにipアドレスを指定すれば問題ないっぽい

iPhone Xが来た

予約開始時にF5を連打して予約したiPhone Xが来ました。
iPhone 4S, 5s, 6sと使ってきたけど、発売日に手に入ったのは初めてなんですよね。

ソフトバンクで予約して店舗受け取りにしてたんですけど、セットアップは自宅で。
いつの間にかセットアップが自宅でもできるようになってて驚きました。

セットアップで驚いたのは、SIMをさして初回起動したとき、iPhone 6sからの移行ができるようになっていて、6sでカメラを起動してXのCGをスキャンしたら基本的な情報が転送されてた点ですね。未来を感じた。

Face IDも個人的にはTouch IDより良い感じだなあと感じてます。
目をカメラに向けないとロック解除できないのは本当に未来を感じてやばい。

対応しているアプリがまだ少なく、上下に帯ができるので残念な感じだけど、満足。
細かい不満は微妙に6sとかと細かい操作が違う点*1かなあ。すぐに慣れるとは思うけど。

*1:Control Centerとかスクリーンショットとか

FactoryMethodを知った

テスト駆動開発を読んでてFactoryMethodってのが出てきたので調べてメモ。
コードはずっと書いてたけど、デザインパターンとかちゃんと勉強したことないなとふと思った。
まあ同じことがテストにも言えるので、最近お勉強している感じなのですけども。

なんかよくわかんないなって思ったけど、調べたら結構わかりやすいページがあった。

morizyun.github.io

確かにこの例を見ると、結合度が下がって抽象化ができてるなあという感じ。
本の中だと、直接クラスを指定してインスタンスを作るという状態から、異なるクラスのインスタンスを返せるように柔軟性を向上させたとか書いてた。

なるほどなあ*1

*1:まとまりがない

「テスト駆動開発」読んでる

大学から帰って、シャワって眠気が来るまでの1時間でコツコツと写経を進めています。
Java力が足りないので、Ruby+Minitestで写経を続けていますが*1、この本、今までに比べてすごく読みやすいですね。

サンプルコードが豊富で、しかも1つの章がすごく小さなステップなので、「少し時間が空いたから1つ進めよう」とかもできるし、差分も取りやすいので今、自分が何やっているのかを見失わずに済む感じ。

毎日コツコツ頑張るぞい。

テスト駆動開発

テスト駆動開発

*1:本当はコンパイルの言語のほうがいいんだろうな

「アニメタ! (4)」と「かぐや様は告らせたい (7)」を読んだ

なんかつらいことが重なってつらいので、本屋によって帰りました。
ネタバレあるかも。。。

あと、t-wada本も買ったのでこれはこれからじっくり読みます。

テスト駆動開発

テスト駆動開発

続きを読む

バンクーバー3日目&4日目

そんなわけでカナダ滞在も後半戦です。
今日が実質最後の滞在日*1なので日本食レストランでも行ってみようかなどと思ったりもしてます。

この日は真面目にカンファレンスに出席していたので観光してないよ。ホントだよ!

*1:土曜日は昼のフライトなので朝から空港

続きを読む