当前位置: 首页 > 科技观察

Docker教程系列:在Docker容器中轻松运行MySQL图文指南

时间:2023-03-23 09:58:13 科技观察

Docker已经成为流行的DevOps工具,您可能需要了解如何在Docker容器中运行MySQL。本指南逐步说明如何在几分钟内设置在Docker容器中运行的新MySQL服务器。Docker的一大优点是您可以快速使用它来试用应用程序,而无需将其直接安装在您的机器上。您可以使用Docker在容器中运行数据库,就像它是远程服务器一样,并测试您的应用程序如何与它交互。使用Docker容器运行MySQL是一种广泛使用的机制。事实上,MySQL是与Docker容器一起使用的最流行的数据库之一。要将MySQL创建为Docker容器,主机应安装Docker。如果你没有安装它,这里有一个关于如何在Ubuntu上安装Docker的分步指南。(参见:https://www.linuxmi.com/ubuntu-docker-zhinan.html)1.拉取MySQLDocker镜像要在Docker中创建和测试MySQL服务器,首先需要做的是下载Pullthe官方MySQL镜像。可以下载特定版本,比如8.0、5.7、5.6,也可以选择最新版本,如下命令所示:linuxmi@linuxmi:~/www.linuxmi.com$sudodockerpullmysql:latest[sudo]passwordforlinuxmi:latest:Pullingfromlibrary/mysql72a69066d2fe:Pullcomplete93619dbc5b36:Pullcomplete99da31dd6142:Pullcomplete626033c43d70:Pullcomplete37d5d7efb64e:Pullcompleteac563158d721:Pullcompleted2ba16033dad:Pullcomplete688ba7d5c01a:Pullcomplete00e060b6d11d:Pullcomplete1c04857f594f:Pullcomplete4d7cfa90e6ea:Pullcompletee0431212d27d:PullcompleteDigest:sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709Status:Downloadednewerimageformysql:latestdocker.io/library/mysql:latestdockerpullmysql:latest如果您需要特定版本的MySQL,请将latest替换为版本号。您可以运行dockerimages命令来查看从DockerHub拉取的Docker镜像列表。linuxmi@linuxmi:~/www.linuxmi.com$sudodockerimagesoutputREPOSITORYTAGIMAGEIDCREATEDSIZEmysqllatest3218b38490ce23hoursago516MB如您所见,MySQL映像现在可用于我们本地安装的Docker。2.设置Docker数据卷(Volume)众所周知,Docker容器原则上是短暂的,如果删除容器,任何数据或配置都可能丢失。但是,DockerVolumes提供了一种机制来保存在Docker容器内创建的数据。它们是Docker在Docker容器中存储持久数据的首选机制。默认情况下,MySQL将其数据文件存储在/var/lib/mysql目录中。因此,在部署之前,您需要设置一个DockerVolume来持久化您的数据库。否则,您的数据将在容器重新启动时丢失。让我们创建一个新卷并将其命名为mysql-data。这将用于存储所有数据库信息。linuxmi@linuxmi:~/www.linuxmi.com$sudodockervolumecreatemysql-datamysql-data您可以通过发出以下命令列出Docker已知的所有数据卷:如下图:如您所见,我们新创建的名为Dockermysql-data的数据卷在这里和准备提供数据。然后它可以附加到新创建的MySQL容器。3.运行MySQLDocker容器现在您的机器上有一个MySQLDocker映像和一个用于保存数据的卷,您可以部署一个容器。您还必须使用MYSQL_ROOT_PASSWORD环境变量为MySQLroot用户设置密码。现在,让我们运行容器:linuxmi@linuxmi:~/www.linuxmi.com$sudodockerrun-d--name=mysql-server-p3306:3306-vmysql-data:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=your_passwordmysql输出0ef0b05cce690b44da538291781f4885702074d4b963。这将启动一个最新版本的MySQL实例,可以使用指定的root密码从任何地方远程访问它。为了让事情更清楚,让我们分解一下这个语法。以下是命令中每个参数的含义:-d将以分离模式运行此容器,以便它在后台运行。--name将名称mysql-server分配给您的容器实例。如果不指定,Docker将生成一个随机名称。-p将MySQL容器端口3306绑定到主机上的同一端口。您将能够使用主机上运行的MySQL客户端()连接到端口127.0.0.1。3306mysql-v选项将容器卷(/var/lib/mysql)内的数据文件夹绑定到您在上一步中创建的本地Docker卷(mysql-data)。-e设置环境变量。在这种情况下,MySQLroot密码。mysql是我们用来创建容器的镜像的名称。您可以通过列出容器来检查它是否正在运行:linuxmi@linuxmi:~/www.linuxmi.com$sudodockerpsoutputCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES0ef0b05cce69mysql"docker-entrypoint.s..."AboutamuteagoUpAboutaminute0.0.0.0:3306->3306/tcp,:::3306->3306/tcp,33060/tcpmysql-server4。连接到MySQL容器您可以通过附加到容器并运行mysql命令来获得交互式MySQLshell。这提供了完整的MySQL命令行界面,因此您可以使用所有熟悉的命令和标志。linuxmi@linuxmi:~/www.linuxmi.com$sudodockerexec-itmysql-servermysql-uroot-pmysql如果主机上预装了MySQLDocker实例,您还可以使用客户端连接到它。请注意,默认情况下,当您告诉mysql客户端连接到localhost时。所以一定要使用127.0.0.1而不是localhost。linuxmi@linuxmi:~/www.linuxmi.com$mysql-uroot-h127.0.0.1-p当然也可以使用MySQLWorkbench等基于GUI的客户端连接数据库。对于MySQLWorkbench中的“主机名”,指定启动Docker容器的机器的IP地址。相关:HowtocreateadatabaseinMySQLusingMySQLWorkbench(see:https://www.linuxmi.com/ubuntu-20-04-mysql-workbench.html)当然,在上面显示的主机名示例中,您可以使用MySQLdocker容器所在机器的IP地址,而不是127.0.0.1。您可以通过运行不带任何参数的ifconfig命令找到该地址。使用您机器的IP地址将允许您远程访问MySQL服务器。5.停止、启动和重启MySQL容器此命令将暂时停止正在运行的MySQL容器(稍后可以恢复/重启):linuxmi@linuxmi:~/www.linuxmi.com$sudodockerstopmysql-server要启动MySQL容器,请运行:linuxmi@linuxmi:~/www.linuxmi.com$sudodockerstartmysql-server以下命令用于重启正在运行的MySQL容器:linuxmi@linuxmi:~/www.linuxmi.com$sudodockerrestartmysql-server结论如你所见,在Docker中运行MySQL比在本地安装MySQLServer更快更容易。如果您计划在Docker上使用MySQL进行测试以外的任何事情,则需要考虑很多事情。有关更多信息,您可以查看DockerHub上的MySQL页面和有关该主题的官方MySQL手册。如果您有任何问题或建议,请告诉我。

最新推荐
猜你喜欢