Mysql的DockerCompose文件编写及解释说明。

本文详细介绍了如何使用DockerCompose文件来管理MySQL8.0.31容器,包括容器名、镜像、端口映射、环境变量、数据卷和网络配置,以及my.cnf文件的示例。步骤包括配置文件编写和使用`docker-composeup-d`命令启动。
摘要由CSDN通过智能技术生成

Mysql的DockerCompose文件编写

直接上DockerCompose

version: "3"
services:
  mysql:
    # 名称
    container_name: mysql
    # 镜像
    image: mysql:8.0.31
    #docker启动,容器启动
    restart: always
    # 指定暴露端口
    ports:
      - "3306:3306"
    environment:
      # 等同于 -e MYSQL_ROOT_PASSWORD指定root的登录密码
      MYSQL_ROOT_PASSWORD: 'root'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      # 这里这个指令compose启动成功后会自动创建名为docker的数据库
      MYSQL_DATABASE: 'base_master'
      # 此处就是相当于 mysql create user,创建了数据库的登录用户
      #MYSQL_USER: 'docker'
      #MYSQL_PASSWORD: 'root'  
    volumes:
      - /dockerData/compose/mysql/data:/var/lib/mysql
      # 这里的my.cnf配置下面有简单实例
      - /dockerData/compose/mysql/conf/my.cnf:/etc/my.cnf
      - /dockerData/compose/mysql/log:/var/log/mysql 
      - /dockerData/compose/mysql/mysql-files:/var/lib/mysql-files 
    networks:
      # 注意加入同一个网络
      - public
    # 解决外部无法访问 这个可有可无,连接不上在尝试打开。
    #command: --default-authentication-plugin=mysql_native_password
networks:
  # 默认将会创建为docker-compose.yaml所在 文件夹名_public网络名称
  public:
    # external: true表示网络已经在Docker外部定义好了
    # 使用bridge驱动创建网络
    driver: bridge

my.cnf文件实例

# 5.5版本不配置会中文乱码,在外部MySql连接工具看不出来,要到容器里面确认。8.0没有尝试,我是配置了没有问题。
# my.cnf文件实例
[client]
default_character_set=utf8mb4
[mysqld]
collation_server = utf8mb4_0900_ai_ci
character_set_server = utf8mb4

运行DockerCompose文件

在docker-compose.yaml所在文件夹里运行 -d表示后台启动

docker compose up -d

成功

在这里插入图片描述

### 回答1: 编写 MySQLDocker Compose 文件 (docker-compose.yml) 可以实现在 Docker 环境中快速部署和管理 MySQL 数据库。以下是一个示例的 docker-compose.yml 文件: ```yaml version: '3.8' services: mysql: image: mysql:latest restart: always environment: MYSQL_ROOT_PASSWORD: mysecretpassword MYSQL_DATABASE: mydatabase MYSQL_USER: myuser MYSQL_PASSWORD: mypassword volumes: - ./data:/var/lib/mysql ports: - 3306:3306 ``` 在这个示例中,我们定义了一个名为 `mysql` 的服务,使用了最新版本的 MySQL 镜像。`restart: always` 命令可以确保 MySQL 容器在停止后自动重新启动。 通过 `environment` 部分,我们可以设置 MySQL 的一些环境变量,如 `MYSQL_ROOT_PASSWORD`、`MYSQL_DATABASE`、`MYSQL_USER` 和 `MYSQL_PASSWORD`。这些环境变量用来设置 MySQL 的根密码、创建的数据库、新用户的用户名和密码。 `volumes` 部分指定了宿主机和容器之间的数据卷映射。在这个示例中,我们将宿主机的 `./data` 文件夹映射到容器内的 `/var/lib/mysql` 目录,以保持数据的持久化。 通过 `ports` 部分,我们将容器内的 3306 端口映射到宿主机的 3306 端口,可以通过宿主机的 IP 地址和端口号来访问 MySQL 数据库。 在终端中,进入包含 docker-compose.yml 文件的目录,执行以下命令即可启动 MySQL 服务: ``` docker-compose up -d ``` 这样,MySQL 容器将在后台运行,并通过定义的端口对外提供服务。可以使用其他 MySQL 客户端工具连接到数据库。如果需要停止 MySQL 服务,可以运行以下命令: ``` docker-compose down ``` 以上就是一个基本的 MySQL Docker Compose 文件编写和使用方法。根据实际需求,可以进行适当的修改和扩展。 ### 回答2: MySQL是一个流行的关系型数据库管理系统,而Docker Compose是一个工具,它可以通过YAML文件来定义和管理多个Docker容器,使得应用程序的部署和管理更加简便和可重复。 当我们需要部署MySQL数据库时,可以使用Docker Compose编写一个docker-compose.yml文件,以下是一个示例: version: '3' services: db: image: mysql container_name: mysql_db restart: always environment: MYSQL_ROOT_PASSWORD: mysecretpassword MYSQL_DATABASE: mydatabase MYSQL_USER: myuser MYSQL_PASSWORD: mypassword ports: - 3306:3306 volumes: - ./data:/var/lib/mysql 在这个示例中,我们定义了一个名为db的服务,其基于MySQL镜像创建容器。我们指定了容器的重启策略为always,表示容器在停止后会自动重启。使用environment字段,我们设置了MySQL的root密码、数据库名称、用户名和密码等环境变量。通过ports字段,我们将容器内部的3306端口映射到宿主机的3306端口,以便在宿主机上访问MySQL服务。使用volumes字段,我们将MySQL数据目录挂载到宿主机的./data目录,以便数据的持久化存储。 通过编写这个docker-compose.yml文件,我们可以使用docker-compose命令快速启动和管理MySQL数据库容器,如下所示: $ docker-compose up -d 这样,MySQL容器将在后台运行,并根据我们在docker-compose.yml文件中定义的配置进行初始化和配置。我们可以通过连接到localhost:3306来访问MySQL数据库,并使用我们在docker-compose.yml文件中设置的用户名和密码进行身份验证。 整体而言,通过MySQLdocker-compose.yml文件编写,我们能够快速地部署和管理MySQL数据库容器,提高了开发和部署过程的效率和可重复性。 ### 回答3: MySQL是一个非常流行的开源关系型数据库管理系统,而Docker Compose是一种能够简化应用程序容器化部署的工具。 编写一个MySQLdocker-compose.yml文件通常需要以下几个步骤: 1. 首先,我们需要指定MySQL容器的版本。可以通过添加版本号来实现,如:version: '3'。 2. 接下来,我们需要定义服务。在这个例子中,我们只定义一个MySQL服务。可以通过添加services: mysql来实现。 3. 在MySQL服务下,我们需要指定镜像。可以通过添加image: mysql来实现。 4. 然后,我们需要指定MySQL的环境变量。可以通过添加environment来实现。这些环境变量包括:MYSQL_ROOT_PASSWORD(MySQL的根密码)、MYSQL_DATABASE(要创建的数据库名称)和MYSQL_USER(要创建的用户名)等。 5. 另外,我们可以使用volumes选项将本地的目录挂载到MySQL容器中,以便于持久化数据。 综上所述,一个基本的MySQLdocker-compose.yml文件可以如下所示: version: '3' services: mysql: image: mysql environment: - MYSQL_ROOT_PASSWORD=123456 - MYSQL_DATABASE=mydb - MYSQL_USER=myuser volumes: - ./data:/var/lib/mysql 这个docker-compose.yml文件定义了一个名为mysql的服务,它使用MySQL的官方镜像,并指定了根密码为123456、创建的数据库名为mydb、用户名为myuser。同时,将当前目录下的data目录映射到MySQL容器的/var/lib/mysql目录,以进行数据持久化。 通过这样的docker-compose.yml文件,我们可以使用Docker Compose轻松部署和管理MySQL容器。只需要在终端中进入到该文件所在的目录,然后运行docker-compose up命令即可启动MySQL容器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

季-风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值