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

docker 部署 mysql

作者:暗夜幽殤   发布日期:2026-07-02   浏览:69

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

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

# 将自定义的配置文件复制到容器中(可选)
COPY my.cnf /etc/mysql/conf.d/

# 暴露 MySQL 默认端口
EXPOSE 3306

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

解释说明:

  1. FROM mysql:5.7:

    • 使用官方的 MySQL 5.7 镜像作为基础镜像。
  2. ENV:

    • 设置环境变量:
      • MYSQL_ROOT_PASSWORD: 设置 root 用户的密码。
      • MYSQL_DATABASE: 创建一个名为 mydatabase 的数据库。
      • MYSQL_USER: 创建一个名为 myuser 的用户。
      • MYSQL_PASSWORD: 设置 myuser 用户的密码。
  3. COPY my.cnf /etc/mysql/conf.d/ (可选):

    • 如果有自定义的 MySQL 配置文件 my.cnf,可以将其复制到容器中的 /etc/mysql/conf.d/ 目录下,以便应用自定义配置。
  4. EXPOSE 3306:

    • 暴露 MySQL 默认的 3306 端口,使得外部可以访问该端口。
  5. CMD ["mysqld"]:

    • 启动 MySQL 服务,默认情况下会运行 mysqld 命令来启动 MySQL 数据库。

如果你只是想通过 Docker Compose 来部署 MySQL,可以使用以下 docker-compose.yml 文件:

version: '3.1'

services:
  db:
    image: mysql:5.7
    container_name: mysql_container
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mydatabase
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

解释说明:

  1. version: '3.1':

    • 指定 Docker Compose 文件的版本。
  2. services:

    • 定义了一个名为 db 的服务,使用 mysql:5.7 镜像。
  3. environment:

    • 设置环境变量,与上面的 Dockerfile 类似,用于配置 MySQL 的初始设置。
  4. ports:

    • 将主机的 3306 端口映射到容器的 3306 端口,使得可以通过主机访问 MySQL。
  5. volumes:

    • 使用卷 db_data 来持久化 MySQL 的数据,即使容器停止或删除,数据也不会丢失。

上一篇:mysql string转int

下一篇:docker 启动 mysql

大家都在看

mysql二级索引

mysqlavg函数保留小数

mysql显示表内容

mysql收集表统计信息

mysql经纬度距离计算

mysql 加密

mysql大小写转换函数

存储过程mysql

mysql 1265

mysql with语句

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

Laravel 中文站