下载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代表用的是哪个镜像

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐