一.下载镜像
[root@localhost one]# docker pull mysql:5.7
Trying to pull repository docker.io/library/mysql ...
sha256:de482b2b0fdbe5bb142462c07c5650a74e0daa31e501bc52448a2be10f384e6d: Pulling from docker.io/library/mysql
f7e2b70d04ae: Pull complete
df7f6307ff0a: Pull complete
e29ed02b1013: Pull complete
9cb929db392c: Pull complete
42cc77b24286: Pull complete
a6d57750cc73: Pull complete
79510826e343: Pull complete
07e462ad61e2: Pull complete
fa594cb5b94d: Pull complete
1b44278270ad: Pull complete
3edb3c323f55: Pull complete
Digest: sha256:de482b2b0fdbe5bb142462c07c5650a74e0daa31e501bc52448a2be10f384e6d
Status: Downloaded newer image for docker.io/mysql:5.7
查看是否成功,出现以下为成功,如果下载比较慢,可以使用
docker pull registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql:5.7
-------------------------------------------------------------------------------------------------------------------------
[root@localhost one]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql 5.7 ee7cbd482336 5 days ago 372 MB
registry.fedoraproject.org/fedora latest 69c5db8b64a7 2 months ago 275 MB
二.运行Mysql
创建数据映射文件夹
mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf
运行
docker run -p 3306:3306 --name mysql5.7 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD==root -d mysql:5.7
--name: 以什么名字启动容器
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码。
-d 后台运行
//查看容器是否运行成功
[root@localhost one]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5ba42dbf117f mysql:5.7 "docker-entrypoint..." 12 seconds ago Up 10 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql5.7
开启远程访问
//选择数据库
use mysql;
//开启权限<第一个root为用户,第二个root为密码,请对应设置>
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
//更新配置
FLUSH PRIVILEGES;