mfjt diary


2019-01-04(金) [長年日記]

_ WSL 上の Docker CLI から Docker for Windows を使う

2 年前に買った本で Docker の勉強を始めた。仕事だけだと最近の技術をキャッチアップできず、さすがに危機感を覚えてきた。

できれば WSL だけで完結する環境にしたいけど、WSL を管理者権限で起動させる必要があるのが嫌だったので、WSL に Docker CLI を入れて、そこから Docker for Windows を操作するようにした。これを書いている時点は以下のバージョンだった。

  • Windows 10 Pro 1803
    • Docker for Windows 2.0.0.0-win81
  • Ubuntu 18.04 LTS on WSL
    • Docker CLI 18.09.0

Docker for Windows のインストール

基本的にインストーラを起動してそのまま進めるだけで OK。インストール後は、WSL の CLI から触れるように、Settings > General にある Expose daemon on tcp://localhost:2375 without TLS にチェックを付けておく。

また、Windows コンテナを使用すると、ホストの起動時に MobyLinuxVM の起動で待たされたり、何もしてないときでも MobyLinuxVM にメモリが食われることがなくなるというメリットがあるので、自分は Windows コンテナで動かしている。Linux コンテナとの違いは理解していないが、今のところ困ってはいない。Windows コンテナで動かすには、インストール途中の Use Windows containers instead of Linux containers にチェックを付けておくか、後から変更したい場合はタスクトレイの Docker アイコンを右クリックし、Switch to Windows containers... (戻すときは Switch to Linux containers...) を選ぶ。

ただし、そのままだと docker: Error response from daemon: operating system on which parent image was created is not Windows. というエラーで Linux のイメージを動かせないので、Settings > Daemon から Experimental を有効にする必要がある。

Docker CLI のインストール

公式ドキュメント通りでもいいけど、どうせ CLI しか使わないので、docker-ce ではなく docker-ce-cli を指定した。

あとは WSL 側の環境変数に DOCKER_HOST=tcp://0.0.0.0:2375 を設定してやると、WSL の Docker CLI からホスト Docker を操作できる。

参考

その他

2 年積ん読している間に 2 版が出てしまった…… 2 年経つとさすがに 1 版の内容は所々古くなってしまっている。

B07BHK5KX7


2018-12-31(月)

_ 2018 年買ってよかったもの

Logicool MX Master 2S

仕事場であてがわれていたエレコムの有線マウスを 2 年くらい我慢しながら使っていたが、いい加減嫌になったので持ち込んだ。元々使っていた旧金型のリアフォとの何の面白みもない組み合わせだが、それくらいでちょうどいい。

AdGuard for Android

広告ブロックの善し悪しについては色々言われるが、スマホ向けサイトの広告のウザさは目に余るものがあるのでやむなしという感じ。無料版でも特に不満はなかったが、夏のセールで Lifetime license が ¥ 500 くらいだったので買った。QOL の上がり具合だと、こいつが一番かもしれない。

DIME 2019 年 2 月号

楽天マガジンを契約しているから基本的に紙の雑誌を買うことはないけど、はい、付録のイヤーチップ目当てです。イヤホンは WALKMAN 付属のノイキャン付きのやつを使っていて、イヤーチップも純正品に交換しながら使っていたが、長時間付けてると蒸れてきたり耳が痛くなるのが不満だった。付録のイヤーチップでそのあたりの不満は解消されたので、とりあえず予備を含めて 3 部買っておいた。

イヤホンをワイヤレス化したいとは思っていて、WI-SP600N を狙っていたけど、評価が芳しくなくて結局買わずじまいだった。


2018-12-30(日)

_ tDiary を Heroku に移した

Passenger で謎に動かないやつ、tdiary.conf の base_uri が未設定だと問題なく、設定後に Apache や Nginx を再起動すると再現することは分かったけど、どうにもならないので諦めて Heroku に引っ越すことにした。

初めて Heroku を使ったけど、公式のドキュメントを見ながらやればほぼほぼ迷うことはなかった。PaaS ならではの話ではないが、update.rb にアクセスすると OAuth::Unauthorized 403 Forbidden でコケるという問題があったが、Twitter の仕様変更があったらしく、Callback URL を /update.rb/auth/twitter/callback の形式にすることで解決した。その他、Heroku Scheduler で Sleep を回避させたり、タイムゾーンを変更したくらいで特に問題もなく動いている。

あとは、Heroku上のtDiaryを運用するのやり方で設定画面からの tDiary 更新を楽しみに肉の日を迎えたが、no commits in upstream と言われて一向に更新できないので*1GitHubでFork/cloneしたリポジトリを本家リポジトリに追従するを参考に手動で更新することにした。とは言え、ちょちょいとやれば勝手にデプロイされるし十分楽なんだけどね。

*1 試しに Personal access tokens を適当な値に変えてみると認証が通らなくなるから、全くもって駄目というわけでもなさそう