diff --git a/README.md b/README.md
index 24d274b..a4b3b17 100644
--- a/README.md
+++ b/README.md
@@ -31,6 +31,21 @@ mysql> grant all on todoapp.* to todouser;
 - ToDoV1.war を手元のPCの tomcatの webappsにコピー
 - ブラウザから,http://localhost:8080/ToDoV1/ にアクセス
 
+### :whale: `docker-compose`での実行
+
+ * 起動
+     * `docker-compose up -d`
+         * `-d` を付けるとバックグラウンドで実行.
+         * `docker-compose logs -f` でバックグラウンドで出力されるログを確認できる.
+ * 終了
+     * `docker-compose stop` で終了.
+     * `docker-compose down` でコンテナも削除する.
+ * `docker-compose` で起動している `mysql` に接続する.
+     * `mysql -u todouser -p -h 127.0.0.1 -P 13306` もしくは
+     * `docker exec -it todo_mysql bash` でコンテナに接続し,
+         * `todo_mysql` というコンテナ上で `bash` を起動する(`-it`はインタラクティブモード).
+     * その後,`bash`上で `mysql -u todouser -p` で接続する.
+
 ## 設計
 
 - メンバー,および,ToDo項目をCRUDする典型的なアプリケーション
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..21672b3
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,28 @@
+version: "3"
+services:
+  todoapp:
+    image: tomcat:9-jdk11-corretto
+    container_name: tomcat_todoapp
+    ports:
+      - 8080:8080
+    volumes: # ホストOSのディレクトリ:コンテナOSでのマウント先
+      - ./build/libs:/usr/local/tomcat/webapps
+    environment: # Docker-compose で起動した時の接続先.application.propertiesも参照のこと.
+      DATASTORE: jdbc:mysql://db:3306/todoapp
+  db:
+    image: mysql:8.0
+    container_name: todo_mysql
+    restart: always
+    ports: # ホストOSのポート番号:コンテナOSのポート番号
+      - 13306:3306
+      # ホストOSで mysql を起動しっぱなしにしておくため,ポート番号を分ける.
+      # 上の DATASTORE のポート番号は db のポート番号であるため,3306 で良い.
+    volumes:
+      - ./build/mysql/data:/var/lib/mysql                  # データ置き場
+      - ./src/docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf # 設定ファイル
+    environment:
+      MYSQL_ROOT_PASSWORD: 'rootroot'
+      MYSQL_DATABASE: 'todoapp'
+      MYSQL_USER: 'todouser'
+      MYSQL_PASSWORD: 'todotodo'
+      TZ: 'Asia/Tokyo'
\ No newline at end of file
diff --git a/src/docker/mysql/my.cnf b/src/docker/mysql/my.cnf
new file mode 100644
index 0000000..d17f22f
--- /dev/null
+++ b/src/docker/mysql/my.cnf
@@ -0,0 +1,9 @@
+[mysqld]
+character-set-server=utf8
+
+[mysql]
+default-character-set=utf8
+
+[client]
+default-character-set=utf8
+
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index e07c446..56a29ac 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -2,9 +2,11 @@
 server.port = 18080
 
 # MySQLデータベース接続設定
-spring.datasource.url=jdbc:mysql://localhost:3306/todoapp
 spring.datasource.username=todouser
 spring.datasource.password=todotodo
+## ${環境変数名:デフォルト値} で,ローカルで起動した場合(テスト時),
+## Docker経由で起動した場合の接続先をそれぞれ設定する.
+spring.datasource.url=${DATASTORE:jdbc:mysql://localhost:3306/todoapp}
 
 # Spring-JPA: DBのテーブルを自動作成してくれる機能
 # create: 新規作成, update: なければ新規作成, create-drop: 新規作成し終了時に削除