docker部署mysql容器自启动并挂载数据卷

825 阅读1分钟

docker部署mysql容器自启动并挂载数据卷

docker部署mysql

1、临时启动一个mysql容器,用于copy容器中的配置文件,用于挂载数据卷

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:latest

2、启动后,进入容器可查看容器中文件详情

docker exec -it 容器id /bin/bash

3、复制两个mysql,conf.d文件夹,一个my.cnf文件(回到宿主机操作)

docker cp 容器id:/var/lib/mysql(容器目录source) /home/mysql/data(宿主机目录target,没找到会自动创建) 
docker cp 容器id:/etc/mysql/conf.d(容器目录source) /home/mysql/conf.d(宿主机目录target,没找到会自动创建) 
docker cp 容器id:/etc/mysql/my.cnf(容器目录source) /home/mysql/my.cnf(宿主机目录target,没找到会自动创建) 

4、启动容器

docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /home/mysql/data/mysql:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf --restart=always mysql:latest

命令行解释

  • -d 容器后台运行

  • --name 指定容器名称

  • -p 将容器服务端口 挂载至 宿主机服务端口

  • -e MYSQL_ROOT_PASSWORD 指定mysql密码

  • -v 挂载数据卷(这里一共挂载了三个文件)

    • 数据库文件夹,对应的是容器中的/var/lib/mysql
    • 配置文件夹 conf.d 对应的是容器中的/etc/mysql/conf.d
    • 配置文件夹 my.cnf 对应的是容器中的/etc/mysql/my.cnf
  • --restart=always 设置容器自启动