Docker安装MySQL并挂载数据及配置文件

作者:demo2024.01.18 03:13浏览量:20

简介:本文将介绍如何使用Docker安装MySQL,挂载数据及配置文件,并设置远程访问权限。通过这些步骤,您将能够轻松地管理和使用MySQL数据库。

在开始之前,请确保您已经安装了Docker。接下来,按照以下步骤操作:

  1. 拉取MySQL镜像
    打开终端,并执行以下命令来拉取最新版的MySQL镜像:
    1. docker pull mysql
    如果您想拉取特定版本的镜像,可以使用类似docker pull mysql:8.0.20的命令。
  2. 创建并运行容器
    接下来,使用以下命令创建并运行一个名为mysql-service的容器,将容器的3306端口映射到主机的3306端口,并将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
    1. docker run -d -p 3306:3306 --name mysql-service -e MYSQL_ROOT_PASSWORD="root" mysql
    这将创建一个名为mysql-service的容器,并将MySQL服务运行在其中。您可以使用docker ps命令来检查容器的状态。
  3. 进入容器内
    要进入正在运行的容器,请执行以下命令:
    1. docker exec -it mysql-service bash
    这将打开一个交互式终端,使您能够与容器内的MySQL服务进行交互。
  4. 确定MySQL配置文件位置
    在容器内,执行以下命令来查找MySQL配置文件my.cnf的位置:
    1. mysql --help | grep my.cnf
    这将显示MySQL配置文件的路径。请注意,实际的路径可能会有所不同,具体取决于您的容器和系统配置。
  5. 创建本地路径并挂载数据
    在主机上创建一个目录来存储MySQL的数据文件,并挂载容器内的数据目录到该目录。执行以下命令来创建目录并挂载数据:
    1. mount -t nfs -o vers=4.1,rsize=1048576,wsize=1048576,hard,intr,proto=tcp 192.168.56.20:/var/lib/mysql /mnt/mysql-data
    请将IP地址192.168.56.20替换为您的Docker主机IP地址。该命令将容器内的MySQL数据目录挂载到主机上的/mnt/mysql-data目录。确保在执行此命令之前,您已经在主机上创建了该目录。
  6. 设置远程访问权限
    要允许从远程主机访问Docker内的MySQL服务,需要进行一些额外的配置。首先,打开Docker服务的配置文件:
    1. vim /lib/systemd/system/docker.service
    在配置文件中找到类似以下行的内容:
    makefileExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock将其注释掉或者直接删除,替换成以下内容:
    makefileExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock保存并退出编辑器。然后重新加载Docker配置并重启服务:
    shell systemctl daemon-reload && systemctl restart docker完成这些步骤后,您应该能够从远程主机访问Docker内的MySQL服务了。只需在远程主机上使用类似以下命令即可连接到MySQL服务:
    shell curl http://192.168.56.20:2375/version or在浏览器中访问 http://192.168.56.20:2375/version请将IP地址192.168.56.20替换为您的Docker主机IP地址。通过这些步骤,您应该能够成功地在Docker中安装MySQL,挂载数据及配置文件,并设置远程访问权限。