今日もメモをのこそう

あとでみるメモ代わり

DockerでMysqlを作ってみる

個人開発用にMysqlを使ってみたい。
Dockerで作ってみよう。

今回のオチ

DockerHubから取得したMysqlのイメージだったら環境変数はきちんとつけよう!

まずは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

これで構築は完了