Introduction

起動するだけなら何でもないのだが、コンテナ内のデーモンに繋がらない。
これで時間を無駄にした。

Resolution

構文

1
2
3
4
5
6
7
8
$ docker pull mysql
$ docker run --name <コンテナの名前> ^
-e MYSQL_ROOT_PASSWORD=<ROOTユーザーのパスワード> ^
-d ^
-v /c/Users/{ユーザディレクトリ}/Documents/workspace:/var/lib/mysql ^
-p <ホストのポート>:<コンテナのポート> ^
mysql
$ mysql --user=root --password=<ROOTユーザーのパスワード> -h localhost --port=<ホストのポート>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ docker pull mysql:5.7
$ docker run --name mysql ^
-e MYSQL_ROOT_PASSWORD=password ^
-d ^
-v /d/works/mysql:/var/lib/mysql ^
-p 53306:3306 ^
mysql:5.7
$ mysql --user=root --password=password -h localhost --port=53306
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.7.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Why?

躓いたのはmysqlで接続する際のパスワード指定
普通、対話形式でパスワードを聞かれるから指定しなくてもいいかな?と思う。
現にパスワードをコマンドラインで指定すると、

1
mysql: [Warning] Using a password on the command line interface can be insecure.

というありがたい警告。
パスワードを聞かれるようにするには

1
2
$ mysql --user=root --password -h localhost --port=53306
Enter password:

というようにする。