1.下载镜像文件
docker pull mysql:5.7
docker pull 镜像名:版本号
注意:docker pull 镜像名 该命令会下载该镜像的最新版本
2.查看当前所有的镜像
docker images
IMAGE ID:镜像ID
3.检查本地配置目录:
确认本地的 /mydata/mysql/conf 目录中是否存在 conf.d 和 mysql.conf.d 子目录,如果不存在,创建这个子目录。
-- 创建子目录
mkdir -p /mydata/mysql/conf/conf.d
mkdir -p /mydata/mysql/conf/mysql.conf.d
4.启动容器
- 命令
docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=设置自己的数据库密码 \
-d mysql:5.7
- 命令解读
解释:
docker run:在docker中启动一个容器实例
-p 3306:3306:指定宿主机端口与容器端口映射关系,容器与主机映射端口为,主机3306,容器3306
--name mysql:容器运行后的名称,创建的容器名称
--restart=always:总是跟随docker启动
--privileged=true:获取宿主机root权限
-v /mysqldata/mysql/log:/var/log/mysql:映射日志目录,将容器/var/log/mysql目录下的数据,备份到主机的 /mysqldata/mysql/log目录下
-v /mysqldata/mysql/data:/var/lib/mysql:映射数据目录,将容器/var/lib/mysql目录下的数据,备份到主机的 /mysqldata/mysql/data目录下
-v /mysqldata/mysql/conf:/etc/mysql:映射配置目录,将容器/etc/mysql目录下的数据,备份到主机的 mysqldata/mysql/conf目录下
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
-d mysql:latest:后台运行mysql容器,版本是latest(最新版)。
5.查看正在运行的容器
//查看正在运行的容器
docker ps
//查看全部的容器
docker ps -a
6.查看某个容器的日志
docker logs --tail -n 容器名
7.删除容器
docker rm 容器id(CONTAINER ID)|| 容器名称(NAMES)
8.停止容器
docker stop 容器名(NAMES)
9.配置mysql配置文件
vi /mydata/mysql/conf/my.conf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
skip-name-resolve:跳过域名解析
10.查看容器内部
docker exec -it 容器ID||容器名 /bin/bash
11.修改成服务器重启时 容器自动启动
docker update mysql --restart=always