MySQL和phpMyAdmin的Docker设置

x33g5p2x  于2022-10-18 转载在 Mysql  
字(2.4k)|赞(0)|评价(0)|浏览(981)

在本文中,我们将了解如何使用docker在本地计算机中设置MySQL数据库和phpMyAdmin以进行应用程序开发。完成本教程后,您将知道如何在本地运行MySQL数据库。

背景

让我们面对现实。开发过程中最困难的部分是设置本地设置。特别是当它涉及到在本地维护数据库时,意味着这是一个头痛的问题。尽管许多数据库(如MySQL)都为此提供了简单的安装程序,但维护该数据库仍然是您的工作。最重要的是,当您不再需要它时,您需要卸载它。
但使用VirtualBox、Vagrant等技术,尤其是Docker,您可以更快地启动本地设置。

使用命令行在本地启动MySQL容器

每个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 Compose for MySQL和phpMyAdmin

尽管上述方法已经足够了,但长命令和各种选项很难记住和跟踪。这就是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容器。

相关文章