下载mysql镜像 我们可以直接执行以下命令
docker pull mysql:5.7
执行完之后,我们使用docker images查看是否下载好了
这样就代表我们的mysql镜像已经下载,接下来需要docker替我们创建并启动一个mysql容器
为了我们后续的使用方便,不采取默认无my.cnf的模式来启动mysql
先准备mysql的my.cnf 如下:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
lower_case_table_names=1
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
init_connect="SET collation_connection = utf8mb4_unicode_ci"
init_connect="SET NAMES utf8mb4"
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
然后我们在宿主机(安装docker的服务器)上创建一些目录,(创建上面配置文件需要的目录)
创建如下3个目录文件夹
mkdir -p -m 777 /mydata/mysql/data
mkdir -p -m 777 /mydata/mysql/conf
mkdir -p -m 777 /mydata/mysql/log
然后将my.cnf文件放入 /mydata/mysql/conf中
最后执行如下命令,创建mysql容器即可
docker run -d -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
--restart=always \
-e MYSQL_ROOT_PASSWORD=root123 \
-d mysql:5.7
--name mysql 容器名称
-p 3306:3306代表将当前实例的mysql容器中的3306端口映射到linux的3306端口
-v /mydata/mysql/log:/var/log/mysql \ 将容器/var/log/mysql目录文件夹映射到宿主机的/mydata/mysql/log目录下
-v /mydata/mysql/data:/var/lib/mysql \ 将/var/lib/mysql的数据映射到到容器/mydata/mysql/data里面
-v /mydata/mysql/conf:/etc/mysql/conf.d \ 将容器//etc/mysql/conf.d配置文件夹映射到宿主机/mydata/mysql/conf目录下
--restart=always 容器自启动
MYSQL_ROOT_PASSWORD=root123 \ 初始化root用户密码 如果这里设置密码为root,会登录不上,需要重新进容器设置密码才可以
-d mysql:5.7 -d代表以后台方式运行 mysql:5.7代表用的是哪个镜像