docker run -d -p 3306:3306 -v ./conf:/etc/mysql/conf.d -v ./data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master mysql:8.0.29
  • 1.

这段命令用于通过 Docker 运行一个 MySQL 8.0.29 的容器,并对其进行一些基本配置。下面是对这条命令的详细解释:

  1. docker run:
  • 这是 Docker 的命令,用于运行一个新的容器。
  1. -d:
  • 表示在后台运行容器,即以守护进程模式运行。
  1. -p 3306:3306:
  • 将容器内部的 3306 端口映射到宿主机的 3306 端口。这样可以通过宿主机的 3306 端口访问容器内的 MySQL 服务。
  1. -v ./conf:/etc/mysql/conf.d:
  • 将宿主机上的 ./conf 目录挂载到容器内的 /etc/mysql/conf.d 目录。这允许你使用自定义的 MySQL 配置文件覆盖默认配置。
  1. -v ./data:/var/lib/mysql:
  • 将宿主机上的 ./data 目录挂载到容器内的 /var/lib/mysql 目录。这使得 MySQL 的数据文件保存在宿主机上,而不是容器内。这样做可以保证数据的安全性和持久化。
  1. -e MYSQL_ROOT_PASSWORD=123456:
  • 设置环境变量 MYSQL_ROOT_PASSWORD'123456'。这是设置 MySQL root 用户的初始密码。
  1. --name mysql-master:
  • 为容器命名,这里命名为 mysql-master。这样可以通过名字来引用和管理容器。
  1. mysql:8.0.29:
  • 指定要运行的 MySQL 镜像版本。这里是 MySQL 8.0.29。
总结

这条命令运行了一个 MySQL 8.0.29 的容器,并进行了以下配置:

  • 容器在后台运行。
  • 容器的 3306 端口映射到了宿主机的 3306 端口。
  • 宿主机的 ./conf 目录被挂载到容器内的 /etc/mysql/conf.d 目录,用于自定义 MySQL 配置。
  • 宿主机的 ./data 目录被挂载到容器内的 /var/lib/mysql 目录,用于持久化 MySQL 数据。
  • MySQL root 用户的初始密码设置为 '123456'
  • 容器被命名为 mysql-master
注意事项
  • 安全性:
  • 使用简单的密码如 '123456' 在生产环境中是不安全的。在实际应用中,你应该使用更复杂、更安全的密码。
  • 配置文件:
  • 确保 ./conf 目录下有正确的 MySQL 配置文件,以覆盖默认配置。如果你不需要自定义配置,可以省略 -v ./conf:/etc/mysql/conf.d
  • 数据持久化:
  • 使用 -v ./data:/var/lib/mysql 可以确保 MySQL 数据的安全性和持久化。请确保 ./data 目录在宿主机上存在并且有足够的空间。

通过这条命令,你可以在 Docker 中快速启动一个 MySQL 8.0.29 的实例,并且可以轻松地通过宿主机的 3306 端口访问它。