DockerでMysqlを作ってみる
個人開発用にMysqlを使ってみたい。
Dockerで作ってみよう。
今回のオチ
まずはDockerfileを用意
Dockerfileはシンプルに以下で試す。
FROM mysql EXPOSE 3306
※ちなみに、Mysqlのデフォルトポートは3306、postgresは5432。
イメージを作って起動(失敗編)
イメージ名、コンテナ名両方とも「mysql」とする。
docker build -t mysql . docker run -d -p 3306:3306 --name mysql -it mysql
起動するとコンテナは作らているが、以下のようなエラーになってDockerが起動できない。
[ERROR] [Entrypoint]: Database is uninitialized and password option is not specified You need to specify one of the following: - MYSQL_ROOT_PASSWORD - MYSQL_ALLOW_EMPTY_PASSWORD - MYSQL_RANDOM_ROOT_PASSWORD
平たく言うと、Mysqlのパスワードを3つのどれかで指定してね、ということらしい。
DockerHubの使用法には「MYSQL_ROOT_PASSWORD」を指定してたので、それで試す。
イメージを作って起動(成功編)
いったん失敗したコンテナを消して、再度作り直す。
基本は変わらないですが、環境変数「MYSQL_ROOT_PASSWORD」を指定。
ネーミングセンスがないので以下は全部「mysql」にしました。(なんでも大丈夫です)
docker rm mysql docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=mysql -it mysql
これで構築は完了