Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

docker 部署mysql8

作者:慢靈魂   发布日期:2025-10-18   浏览:31

# 使用官方的 MySQL 8 镜像
FROM mysql:8

# 设置环境变量,避免启动时输入密码
ENV MYSQL_ROOT_PASSWORD=rootpassword \
    MYSQL_DATABASE=mydatabase \
    MYSQL_USER=myuser \
    MYSQL_PASSWORD=mypassword

# 挂载数据卷,将 MySQL 数据存储在主机的 /mydata/mysql 目录下
VOLUME /mydata/mysql:/var/lib/mysql

# 暴露 MySQL 默认端口
EXPOSE 3306

# 启动 MySQL 服务
CMD ["mysqld"]

解释说明:

  1. FROM mysql:8:

    • 使用 Docker Hub 上的官方 MySQL 8 镜像作为基础镜像。
  2. ENV:

    • 设置 MySQL 的环境变量:
      • MYSQL_ROOT_PASSWORD: 设置 root 用户的密码。
      • MYSQL_DATABASE: 创建一个名为 mydatabase 的数据库。
      • MYSQL_USER: 创建一个名为 myuser 的用户。
      • MYSQL_PASSWORD: 设置 myuser 用户的密码。
  3. VOLUME:

    • 将 MySQL 的数据目录 /var/lib/mysql 挂载到主机的 /mydata/mysql 目录,确保数据持久化。
  4. EXPOSE:

    • 暴露 MySQL 默认的 3306 端口,以便外部可以访问。
  5. CMD:

    • 启动 MySQL 服务,使用默认的命令 mysqld

你可以通过以下命令来运行这个 Docker 容器:

docker run -d --name mysql8-container -p 3306:3306 -v /mydata/mysql:/var/lib/mysql mysql:8

这将启动一个名为 mysql8-container 的容器,并将主机的 3306 端口映射到容器的 3306 端口。

上一篇:mysql 判断空

下一篇:windows查看mysql服务状态

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

unsigned在mysql中是什么意思

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站