クリーンなマシンにWSL2+Docker作ったあとMySQLを立ち上げる

記事の中身

やったことをリストアップした

背景

前々からWSL2を入れたいなとは思っていたが、大事なデータがいろいろ入っているマシンでを使うのと、マシンのスペックが低かったので保留していた。

今回Windows 10 Proで新しいクリーンなマシン(ノートPC)が手に入ったので、これを開発用のPCにしてやりたかったことができるようになった。

全然関係ないが、Proにデフォルトで入ってるリモートログインって、一般には重宝されそうである。

WSL2 + Docker

WSL2とDocker DeskTop for WSL2の導入は 手順は公式に従った。上から順番にやる。

  1. Windows Subsystem for Linux (WSL) を Windows 10 にインストールする | Microsoft Docs
  2. WSL 2 のインストール | Microsoft Docs\
  3. Docker Desktop WSL 2 backend | Docker Documentation\

追加で生じた手順は、2で「Windows仮想マシン プラットフォーム機能を有効にして、BIOS で仮想化が有効になっていることを確認してください。」 と出たのでいわれた通りBIOS入ってやり直したぐらい。再起動しまくって時間はかかったが、スムーズだった。

VSCode etc

Ubuntuの方にgit入れて、windowsの方に VSCode をインストールしたあとVSCode の Remote DevelopmentのExtensionを入れた。

Ubuntu18.04ではpython2系は入っていないということだったががっつりあったので、慣れで間違って2系を使わないようにエイリアスを設定

alias python="/usr/bin/python3"

ありがたいことにdockerとdocker-composeは最初から動く。\ 別に使っているlinuxのマシンではRootles Dockerを入れているのだが、とはいえWindowsで動くか不安なので今回は見送った。

MySQL

MySQLは公式のイメージを使う。MySQLは初めてなのでいくつかのブログにお世話になった。(参考4-5)\ そもそもDockerを使おうとしたのは、先日ローカルMySQLサーバーを建てようとして原因不明のエラーに半日悩まされて断念したからである。\ Dockerだったら一発だった。

MySQLのコンテナの中の /docker-entrypoint-initdb.d ディレクトリにクエリファイルを入れておくと、コンテナの起動時に実行してくれるらしい。

終わり

有益な情報のないただの日記になってしまった

参考

  1. Windows Subsystem for Linux (WSL) を Windows 10 にインストールする | Microsoft Docs
  2. WSL 2 のインストール | Microsoft Docs
  3. Docker Desktop WSL 2 backend | Docker Documentation
  4. Docker + MySQLで開発環境用DBの作成 - もぐもぐプログラミング
  5. docker-compose+MySQL5.7(8.0も)+初期化+永続化 - Qiita