docker部署mysql

创建mysql docker

拉取docker包

docker pull mysql:5.7

拉取完成查看:docker images

准备工作

1)交互界面运行容器:

docker run -it mysql /bin/bash

参数 -i -t 等价于 -it 表示insert , 进入 ; /bin/bash 表示 shell 脚本交互界面

2). 可用 mysql --help | grep Distrib 查看 mysql 版本信息

mysql --help 查看帮助信息,并在结果集中 查找 Distrib ,“|”单竖线表示命令的连续执行。 同时以前一个命令值域作为后一个命令的定义域

3). 退出 当前交互窗口:exit 。此操作会关闭 mysql 服务 。

对于创建的bush 容器,exit 退出后,容器也会退出。 这是因为对Docker 来说,容器中的应用退出了,容器也就没有必要继续运行了。

创建mysql配置目录

mkdir -p /docker/test/mysql/data/mysql/logs
mkdir -p /docker/test/mysql/data/mysql/data
mkdir -p /docker/test/mysql/data/mysql/conf

mysql配置文件配置

cat >> /docker/test/mysql/data/mysql/my.cnf << '!'
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
skip-grant-tables

[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
!

5). 退出删除旧的容器

docker stop mysql 
docker rm mysql

部署容器

docker stop mysql
docker rm mysql
docker run \
        --privileged=true \
        --restart=always \
        -p 3306:3306 \
        --name mysql \
        -v /docker/test/mysql/data/mysql/conf:/etc/mysql/conf.d \
        -v /docker/test/mysql/data/mysql/logs:/var/log/mysql \
        -v /docker/test/mysql/data/mysql/data:/var/lib/mysql \
        -v /docker/test/mysql/data/mysql/mysql-files:/var/lib/mysql-files \
        -v /etc/localtime:/etc/localtime \
        -e MYSQL_ROOT_PASSWORD='test520&' -d mysql:5.7

-d # 表示在一直在后台运行容器

-p 3306:3306# 对端口进行映射,将本地3306端口映射到容器内部的3306端口

--name # 设置创建的容器名称

-e MYSQL_ROOT_PASSWORD='test520&' 设置数据库密码

-v /etc/localtime:/etc/localtime 这个不要忘记,是和主机同步时间,如果忘记,使用now()可就不对了

你可能感兴趣的:(docker,docker,运维,java)