WSLでDockerを操作するよ – オレオレアドベントカレンダー5日目

そろそろネタが無くなってきました

だいじょうぶ、何とか書きますよ。
今日は、ベアメタルUbuntuサーバ上のDockerを、Windows上のWSLで動かす方法について書きましょう。

WSL?

まあ、Windowsユーザはすべからく使っているであろう、WSLことWindows Subsystem for Linuxですが、当然のようにUbuntu18.04使ってます。「WSLで始めるUbuntu 」ってコラムもやってますしね(ダイマ)。
さて、WSLでもちゃんとDocker動きます。ちょっとdockerサービス起動時にWSLをWindows管理者権限で起動しないとハマるんですが、ちゃんと動きます。ただ、最近500GBしかないSSDだとちょっと厳しくなってきたので、余ってた小さい子にUbuntu入れて、こっちでDockerやろうと思いました。まあ、250GBしかSSD無いし、2 threadしかないCeleron N3000だけど、16GBという基本的人権のあるメモリ積んでるし、Dockerそれほど重くないから平気平気。

ウチの小さい子近影。下の子はNUC(Win10Pro)

Ubuntu側設定

普通に、Ubuntu18.04いれて、apt update&upgradeして、apt install docker.io インストールして、ユーザにdockerグループつけただけで、何もしてません。

WSL側設定

WSL側では、apt install docker.とdocker-composeを入れておきましょう。以下のコマンドでdocker-machineをインストールします。sudo を使うので、自分のパスワードを入れましょう。

あとは、sshの秘密鍵ペアをed25519かecdsaで作って、公開鍵をubuntu側に登録しておきます。
その後、以下のコマンドでDocker-machineをインストールします。相手がubuntuなので、ジェネシックもといgenericドライバーを使用します。逸般ユーザで接続するので、–generic-ssh-user と–generic-ssh-key の設定も必須ですね。

はい、これだけでちゃんと登録されます。ちょろい。

Docker-machineを動かす

さて、Docker machineを動かすには以下のようにします。

はい、だいたい動きますね。簡単。ちなみに、直接DOCKER_HOSTとDOCKER_TLS_VERIFY=1を設定して上げる方法もありますが、サーバ鍵とクライアント鍵を用意しないといけないので、めちゃくちゃ面倒くさいです(やった)。

これでKUSANAGI RoDも動きますね

某KUSANAGI RoDは、docker-machineとdocker-composeを使用することが前提なので、これで容赦なくRoD使えますね。
え?早く正式版出せ?さーせん、PHP7だけ新しくしたんで許してください。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください