使用Docker-compose部署mysql

文章介绍了如何利用Docker-compose简化Docker容器的部署,特别是对于多容器环境和配置文件的管理。通过创建docker-compose.yml文件,可以一键启动包括MySQL在内的多个容器,并在主机重启后自动恢复服务。同时,文中提供了详细的配置和启动步骤。

前言

虽然docker部署环境比自己下载安装包要方便不少,但是docker的命令还有挂载目录在每次启动容器的时候都去找命令对使用者是很不友好的,而且有时候要启动多个容器的时候显然一个个的启动是很麻烦的。所以如果可以事先将"启动脚本"写好的话,之后就算虚拟机重启了,再启动容器也就是执行"启动脚本"就好了,docker-compose很好的解决了这个问题。

一、Docker-compose简介

个人理解:容器编排工具,对于大多数人来说可能最大的作用是被当成启动容器的脚本了。它可以实现一次性启动多个容器,它的自动重启容器策略也很好用。

二、部署步骤

1. 在/root 目录下新建目录docker-compose,在/root/docker-compose目录下新建mysql文件件

cd /root 
mkdir docker-compose && cd docker-compose
mkdir mysql && cd mysql

2 准备挂载文件

(如果不需要修改配置文件此步可跳过,然后docker-compose.yml文件挂载时删除配置文件的挂载)

在 /root/docker-compose/mysql 文件夹下新建config文件夹,在conf文件下新建my.cnf 文件

mkdir config && cd config
vim my.cnf

将下面的配置文件复制到 my.cnf中

[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

3.编写docker-compose.yml文件

在/root/docker-compose/mysql文件夹下新建docker-compose.yml文件,

cd /root/docker-compose/mysql

vim docker-compose.yml

加下面内容复制到 docker-compose.yml 中

version: '3'
services:
  mysql:
    image: mysql
    restart: always
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      TZ: Asia/Shanghai
    ports:
      - 3306:3306
    volumes:
      - /root/docker-compose/mysql/data:/var/lib/mysql
      - /root/docker-compose/mysql/config/my.cnf:/etc/mysql/my.cnf
    command:
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
注意docker-compose.yml 第8行设置mysql root 账号登录的密码,这里的 password 修改为自己需要的密码即可。

4. 启动

docker-compose up -d

总结

即使之后宿主机重启了,只要到docker-compose.yml文件所在的位置,执行docker-compose up -d命令就可以启动容器了,事实上如果docker-compose.yml文件中配置了容器的重启策略为always,那么每次重启docker时都会重启相关的容器,即不需要执行docker-compose up -d命令也会自动重启mysql容器。

### 使用 Docker-Compose 部署最新版或特定版本的 MySQL #### 1. 创建 Docker Compose 文件 在指定目录下创建 `docker-compose.yaml` 文件,并根据需要选择 MySQL 的版本。以下是一个示例配置文件,用于部署 MySQL 的最新稳定版本或特定版本。 ```yaml version: '3.1' services: db: image: mysql:latest # 使用最新版本[^4],或者替换为特定版本如 mysql:5.7 container_name: mysql-container restart: always environment: MYSQL_ROOT_PASSWORD: rootpassword # 设置根用户密码 MYSQL_DATABASE: example_db # 初始化时创建的数据库名称 MYSQL_USER: example_user # 创建的普通用户 MYSQL_PASSWORD: userpassword # 普通用户的密码 ports: - "3306:3306" # 将容器的 3306 端口映射到主机的 3306 端口 volumes: - ./mysql/data:/var/lib/mysql # 数据持久化路径 - ./mysql/conf:/etc/mysql/conf.d # 自定义配置文件路径 ``` #### 2. 下载并安装 Docker Compose 如果尚未安装 Docker Compose,可以使用以下命令下载并安装工具: ```bash mkdir -p ~/.docker/cli-plugins/ # 创建插件目录 curl -SL https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose # 下载 Docker Compose[^2] chmod +x ~/.docker/cli-plugins/docker-compose # 赋予执行权限 ``` 或者,为了加快下载速度,可以使用国内镜像源下载 Docker Compose: ```bash curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # 使用 DaoCloud 加速下载[^3] chmod +x /usr/local/bin/docker-compose # 赋予执行权限 ``` #### 3. 启动 MySQL 容器 确保已经正确配置了 `docker-compose.yaml` 文件后,运行以下命令启动容器: ```bash docker-compose up -d # 在后台启动容器 ``` #### 4. 验证容器状态 可以通过以下命令检查容器是否正常运行: ```bash docker ps # 查看所有正在运行的容器 docker logs mysql-container # 查看容器日志以排查问题 ``` #### 5. 连接到 MySQL 使用以下命令连接到 MySQL 容器中的数据库实例: ```bash docker exec -it mysql-container mysql -uexample_user -p # 使用普通用户登录 # 或者 docker exec -it mysql-container mysql -uroot -p # 使用根用户登录 ``` 输入相应的密码后即可访问数据库。 --- ### 注意事项 - 如果需要指定 MySQL 的特定版本,只需将 `image: mysql:latest` 替换为所需的版本号,例如 `image: mysql:5.7`。 - 为了加速镜像拉取,建议配置国内的 Docker 镜像源[^4]。例如,可以使用腾讯云、阿里云或清华大学的镜像源。 - 在生产环境中,应避免将敏感信息(如密码)硬编码在配置文件中,推荐使用环境变量或密钥管理工具。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值