Monday, December 7, 2015

How to create a MySQL docker contianer and use it in Spring Boot Data Access developement (Windows 7, Java)


This article is to document how to create MySQL docker container and use it in Java development.

Create a MySQL docker container
  1. Install docker toolbox (in this case, I use 1.9.1c)
  2. Open docker terminal
  3. Run following command
    $ docker run --detach --env MYSQL_ROOT_PASSWORD=password1 --env MYSQL_USER=psun
    --env MYSQL_PASSWORD=password1 --env MYSQL_DATABASE=netgloo_blog --name mys
    ql --publish 3306:3306 mysql:latest

Run SQL command in the existing docker container
  1. Run following command to bring up a terminal with existing docker container
    docker exec -it mysql bash
  2. Now you should enter the bash prompt. So you can run following command to log into mysql -u root -p;
  3. You should enter mysql prompt. You can use following commands to do sql query
    show databases;
    use [database_name];
    show tables;
    select ... from ...;
You need to find what the docker machine's IP is using.
docker-machine ip default
In my case, it's 192.168.99.100

Clone the spring boot sample from https://github.com/netgloo/spring-boot-samples/tree/master/spring-boot-mysql-springdatajpa-hibernate

Open the project and modify IP and MySQL user credential in application.properties file.
# Connection url for the database "netgloo_blog"
spring.datasource.url = jdbc:mysql://192.168.99.100:3306/netgloo_blog

# Username and password
spring.datasource.username = root
spring.datasource.password = password1

After that run the project by running
mvn spring-boot:run