Dockerのボリュームが作れなかった

Dockerのボリュームが作れなかった

今朝めっちゃ困ってたやつ、忘れないように書く。

現象

社のVPSにDockerとdocker-compose入れてシュッと動かそうとしたら、volumeが作成できなかった。

原因

Dockerのvolumeのドライバがolverlay2になってた。

いままでデフォルトがdevicemapperになってたから、そういうもんだと思ってた。

こっちのほうが色々いいらしい(けど、カーネルが4.0↑だったりファイルシステムが最近のやつじゃないといけなかったりする)

直し方

dockerデーモンの起動オプションで"--storage-driver=devicemapper"とかつけてやると動く。 http://docs.docker.jp/engine/userguide/storagedriver/selectadriver.html

ログのメッセージとか書けや(検索で引っかからんやんけ)という感じだけど、全部終わってからブログに書くの思いついたからな。

the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior.

とか

overlay2: the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior.

とかで検索してたし、そのようなアレが出てたんだろう多分。

SSH先のファイルをVSCodeで開くやつ

われわれ人類はリモートのファイルを編集してるときに、すぐvimキーバインドを忘れて「vim 検索」「vim 正規表現 置換」だとかでググって生涯の20%くらいを無駄にしてしまう。よくない。

なので幼子でも使えるVSCodeSSH先のファイルを楽に編集できるようにしましょう。

準備

VSCodeにRemote VSCode入れる

marketplace.visualstudio.com

あとVSCodeの設定にこういうのを書く

"remote.port": 52698,
"remote.onstartup": true,
"remote.host": "127.0.0.1",
"remote.dontShowPortAlreadyInUseError": false,

エディタ側がサーバになる。Xとかxdebugみたいな感じ。

rmateとかそういうのをリモート先に入れる

ファイルを送り付けて同期するやつ。

本家はRubyで実装されてるrmateってやつらしい。

GitHub - textmate/rmate: Edit files from an ssh session in TextMate

でもいろんな言語で実装されているので、好きなやつを使いましょう。

使い方はだいたい同じっぽい。

SSHポートフォワードする

リモートのポート52698→ローカルのポート52698にポートフォワードする。

おれはRLoginを使っているのでこのようにした。

f:id:halfneet:20180503151539p:plain

 

実際にやってみる

SSH先で以下をやる(おれはjmate使ってるので適時置き換えてくれ)

jmate -p 52698 適当なファイル名

するといきなり手元のVSCodeでリモートのファイルが開く。

適当に保存するだけで同期されるし、適当に閉じるだけで閉じる。便利。 

 

追記

jmateはマルチバイト文字だめっぽいのでrmate使うことにした。