LoginSignup
3
4

More than 5 years have passed since last update.

【まずは】DockerでMySQLを起動してみる。(細かいことはあとにして)

Posted at

動作環境

動作した環境は、以下の通りです。

Mac
$ uname -r
16.6.0

$ docker -v; docker-machine -v;  docker-compose -v;
Docker version 17.06.0-ce, build 02c1d87
docker-machine version 0.12.0, build 45c69ad
docker-compose version 1.14.0, build c7bdf9e

準備するファイル

準備するファイルは、以下の通りです。

フォルダ構成
docker/
 ├ sql/
 │ └ ddl.sql
 └ docker-compose.yml

サービスの定義をします。今回は、MySQLを立ち上げます。

docker-compose.yml
version: '2'
services:
  mysql:
    image: mysql:latest
    container_name: <コンテナ名>
    ports:
     - "3306:3306"
    volumes:
     - ./sql:/docker-entrypoint-initdb.d
    environment:
        MYSQL_ROOT_PASSWORD: <rootのパスワード>
        MYSQL_DATABASE: <作成するDB名>
        MYSQL_USER: <ユーザ名>
        MYSQL_PASSWORD: <ユーザのパスワード>

SQLファイルの準備は任意です。不要であれば準備する必要はありません。
コンテナ作成時に実行するSQLが必要であれば準備します。テーブル定義のDDLを準備しておくのも良いでしょう。

ddl.sql
# 例えばこんな感じのヤツ

CREATE TABLE `MEMBER` (
  `MEMBER_ID` bigint(20) NOT NULL AUTO_INCREMENT,
  `MEMBER_NAME` varchar(255) NOT NULL,
  `LAST_UPDATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`MEMBER_ID`)
);

起動

dockerフォルダに移動して、コマンドを実行します。

バックグラウンドで実行
$ docker-compose up -d

STATUS欄が[Up xx seconds]となっていれば起動しています。

起動確認
$ docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
52fa752aad15        mysql:latest          "docker-entrypoint..."   25 hours ago        Up 8 seconds        0.0.0.0:3306->3306/tcp   <コンテナ名>

接続

localhostの3306番ポートに、docker-compose.ymlで指定した<ユーザ名>と<ユーザのパスワード>で認証すれば接続することができます。

まとめ

まずは、Dockerで得られるメリットを感じてもらえるようDockerの概念には触れませんでした。やりたいことが増えてから学ぶでも良いと思います。

イメージ作成、複数コンテナの連携、データの永続化...

このエントリーが、誰かの1歩めになれば幸いです。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4