在本文中,我们将了解如何使用docker在本地计算机中设置MySQL数据库和phpMyAdmin以进行应用程序开发。完成本教程后,您将知道如何在本地运行MySQL数据库。
让我们面对现实。开发过程中最困难的部分是设置本地设置。特别是当它涉及到在本地维护数据库时,意味着这是一个头痛的问题。尽管许多数据库(如MySQL)都为此提供了简单的安装程序,但维护该数据库仍然是您的工作。最重要的是,当您不再需要它时,您需要卸载它。
但使用VirtualBox、Vagrant等技术,尤其是Docker,您可以更快地启动本地设置。
每个MySQL数据库版本都可以在https://hub.docker.com/_/mysql作为docker容器使用。在编写本文时,MySQL 8是当前版本,因此我们将选择在本例的本地安装它。
Docker可以将图像作为当前进程运行(就像我们在上面的hello world图像中看到的那样),也可以在后台运行它们。由于我们希望数据库作为一个单独的进程运行,运行MySQL示例的更简单的方法是调用以下命令。
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=test -e MYSQL_USER=test -e MYSQL_PASSWORD=test -d mysql:8 -p "3306:3306"
Code language: JavaScript (javascript)
该命令在后台创建一个运行MySQL版本8的docker容器。运行此命令后,您将得到一个长字符串。这个值是我们刚才创建的容器的引用。
此时,您可以将应用程序或数据库客户端指向通过docker对本地计算机上运行的数据库进行更改。例如,Spring引导应用程序的以下属性工作得很好。
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=test
spring.datasource.password=test
Code language: JavaScript (javascript)
但是,在完成应用程序之后,可以使用以下命令按名称停止容器。
docker stop mysql8
此外,此图像还有其他选项,允许您在容器停止后保留数据,甚至可以提供自定义***my。cnf***文件以进一步配置容器。但我会把那部分留给你。
尽管上述方法已经足够了,但长命令和各种选项很难记住和跟踪。这就是docker作曲发挥作用的地方。
使用Docker Compose,可以以受控方式为一个或多个容器创建单个描述符文件。例如,我们可以将前面的示例重写为下面的docker-compose.yml。
version: '3'
services:
mysql8:
image: mysql:8
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_DATABASE: "test"
MYSQL_USER: "test"
MYSQL_PASSWORD: "test"
Code language: JavaScript (javascript)
有了这个文件,您可以使用以下命令简单地启动或停止docker容器。
docker-compose up -f docker-compose.yml -d
Code language: CSS (css)
docker-compose down -f docker-compose.yml
Code language: CSS (css)
虽然这里的优点似乎是简单的启动/关闭命令,但真正的优点是docker组合允许多个容器一起启动。
例如,您可以启动PHPMyAdmin和数据库来管理表和模式。
version: '3'
services:
mysql8:
image: mysql:8
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_DATABASE: "test"
MYSQL_USER: "test"
MYSQL_PASSWORD: "test"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8081:80"
environment:
PMA_HOST: "mysql8"
MYSQL_ROOT_PASSWORD: "root"
MYSQL_DATABASE: "test"
MYSQL_USER: "test"
MYSQL_PASSWORD: "test"
Code language: JavaScript (javascript)
使用此文件,docker-compose up -f docker-compose.yml -d
将生成两个容器。一个用于MySQL,另一个用于PHPMyAdmin。你甚至可以访问http://localhost:8081来管理表和模式。
我们学习了如何在本地开发环境中为MySQL数据库创建docker容器。我们也看到了,我们可以如何利用docker构图。yml可以轻松地在本地启动MySQL容器。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://springhow.com/mysql-docker-container-for-local-development/
内容来源于网络,如有侵权,请联系作者删除!