golang,go,博客,开源,编程

docker 安装mysql教程

Published on with 0 views and 0 comments

Docker 安装 MySQL 教程

使用 Docker 安装 MySQL 是一种快速且简便的方式,不需要复杂的配置。你可以通过拉取 MySQL 镜像并运行容器来轻松启动 MySQL 数据库。下面是一步步的安装教程。


前提条件

  1. 安装 Docker:首先你需要在本地机器上安装 Docker。如果还没有安装,可以参考以下链接进行安装:
  2. 确保 Docker 运行正常:执行以下命令确认 Docker 已经正确安装并正在运行:
    docker --version
    

一、拉取 MySQL 镜像

  1. 拉取官方 MySQL 镜像 在终端或命令行窗口中运行以下命令,来拉取官方的 MySQL 镜像:

    docker pull mysql:8.0
    

    这个命令会从 Docker Hub 拉取最新的 MySQL 8.0 镜像。如果你需要其他版本,可以指定相应版本号。

  2. 查看已下载的镜像 拉取完成后,可以通过以下命令查看本地的镜像:

    docker images
    

二、运行 MySQL 容器

  1. 启动 MySQL 容器
    使用 docker run 命令启动一个新的 MySQL 容器。以下是一个启动 MySQL 8.0 的示例命令:

    docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.0
    

    解释:

    • --name mysql-container:指定容器的名称(这里是 mysql-container,你可以根据需求修改)。
    • -e MYSQL_ROOT_PASSWORD=my-secret-pw:设置 root 用户的密码(这里设置为 my-secret-pw,请根据需要修改)。
    • -d:让容器在后台运行。
    • mysql:8.0:指定要使用的镜像版本(这里使用的是 MySQL 8.0 镜像)。
  2. 查看运行中的容器 启动容器后,可以使用以下命令查看容器状态:

    docker ps
    

    如果 MySQL 容器正常启动,你会看到类似以下输出:

    CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                 NAMES
    a1b2c3d4e5f6   mysql:8.0   "docker-entrypoint.s…"   10 minutes ago   Up 10 minutes   3306/tcp, 33060/tcp    mysql-container
    

三、连接到 MySQL 容器

  1. 使用 MySQL 客户端连接到容器中的 MySQL 实例
    你可以通过 docker exec 命令进入容器并使用 MySQL 客户端连接到 MySQL 数据库:

    docker exec -it mysql-container mysql -u root -p
    

    系统会提示你输入 root 用户的密码(你在运行容器时通过 MYSQL_ROOT_PASSWORD 设置的密码)。

    示例:

    Enter password: my-secret-pw
    

    成功连接后,你将看到 MySQL 命令行界面,类似于:

    mysql>
    
  2. 退出 MySQL 客户端 你可以使用 exit 命令退出 MySQL 客户端:

    mysql> exit
    

四、配置 MySQL 持久化存储

默认情况下,MySQL 数据存储在容器内,但容器删除后,所有的数据也会丢失。因此,我们需要为 MySQL 配置持久化存储。

1. 创建数据卷

可以使用 Docker 卷来持久化存储 MySQL 数据。创建一个新的 Docker 卷:

docker volume create mysql-data

2. 启动 MySQL 容器并挂载卷

使用卷挂载来启动 MySQL 容器,并确保数据库数据在容器删除时不会丢失:

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -v mysql-data:/var/lib/mysql -d mysql:8.0

解释:

  • -v mysql-data:/var/lib/mysql:将 mysql-data 卷挂载到容器中的 /var/lib/mysql 目录,该目录用于存储 MySQL 数据。

五、端口映射与远程连接

如果你希望从本地或其他主机上远程连接到 MySQL,你可以将 MySQL 的默认端口 3306 映射到宿主机的端口。

1. 运行 MySQL 容器并映射端口

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql:8.0

解释:

  • -p 3306:3306:将容器内的 3306 端口映射到宿主机的 3306 端口,允许从外部主机访问 MySQL。

2. 使用远程 MySQL 客户端连接

现在你可以使用任何 MySQL 客户端(例如 MySQL Workbench 或命令行客户端)连接到 MySQL 服务,连接地址为宿主机的 IP 地址或 localhost(如果在本机运行 Docker)。

连接命令:

mysql -h localhost -u root -p

输入密码后即可连接到 MySQL。


六、停止和删除 MySQL 容器

  1. 停止 MySQL 容器
    docker stop mysql-container
    
  2. 删除 MySQL 容器 如果你不再需要该容器,可以删除它:
    docker rm mysql-container
    
  3. 删除 MySQL 镜像 如果不再需要该镜像,可以使用以下命令删除:
    docker rmi mysql:8.0
    

七、常用 MySQL 配置环境变量

在启动 MySQL 容器时,除了设置 MYSQL_ROOT_PASSWORD 外,还可以使用以下环境变量进行其他配置:

  • MYSQL_DATABASE:创建并初始化一个数据库。
    docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=mydb -d mysql:8.0
    
  • MYSQL_USER:创建一个新的 MySQL 用户。
    docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_USER=myuser -e MYSQL_PASSWORD=mypassword -d mysql:8.0
    
  • MYSQL_ALLOW_EMPTY_PASSWORD:允许 root 用户使用空密码。
    docker run --name mysql-container -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql:8.0
    

八、使用 Docker Compose 安装 MySQL

如果你希望通过 Docker Compose 来管理 MySQL 容器,可以创建一个 docker-compose.yml 文件,来定义 MySQL 服务。

  1. 创建 docker-compose.yml 文件
    version: '3.1'
    
    services:
      mysql:
        image: mysql:8.0
        container_name: mysql-container
        environment:
          MYSQL_ROOT_PASSWORD: my-secret-pw
        ports:
          - "3306:3306"
        volumes:
          - mysql-data:/var/lib/mysql
    volumes:
      mysql-data:
    
  2. 启动 MySQL 服务 使用 Docker Compose 启动 MySQL 服务:
    docker-compose up -d
    
  3. 停止和删除容器 使用以下命令停止并删除容器:
    docker-compose down
    

九、总结

通过 Docker 安装 MySQL 是一种快速、简便且灵活的方法。它使得开发和生产环境中 MySQL 的安装和管理变得更加高效和方便。你可以通过 Docker 容器实现 MySQL 服务的快速部署、配置、持久化存储以及网络映射等操作。

希望这个教程对你有帮助!如果你有任何问题,请随时提问。


标题:docker 安装mysql教程
作者:mooncakeee
地址:http://blog.dd95828.com/articles/2025/01/07/1736217059300.html
联系:scotttu@163.com