- 拉取镜像
docker pull mysql:5.7
- 查看镜像
docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.7 938b57d64674 12 days ago 448MB hello-world latest feb5d9fea6a5 5 weeks ago 13.3kB
- 通过镜像启动
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
-p 3306:3306 将容器的3306端口映射到主机的3306端口
-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=123456 初始化 root 用户的密码
- 查看当前的实例, 注意状态STATUS是否正常
docker ps -a ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 12c07c9fc028 mysql:5.7 "docker-entrypoint.s…" 7 seconds ago Up 6 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mymysql 3838f7b24d0c hello-world "/hello" 32 minutes ago Exited (0) 32 minutes ago great_thompson
- 查看某一实例的日志
docker logs 3838f7b24d0c
- 进入容器配置
docker exec -it 12c07c9fc028 /bin/bash root@12c07c9fc028:/#
- 进入容器后, 登录MySQL
root@12c07c9fc028:/# mysql -uroot -p123456
- 建立用户并授权
设置用户拥有所有权限
grant all privileges on 表 to ‘用户名’@‘IP’ identified by ‘密码’ WITH GRANT OPTION;
grant all privileges on *.* to 'root'@'%' identified by 'root' WITH GRANT OPTION; grant all privileges on *.* to 'root'@'127.0.0.1' identified by 'root' WITH GRANT OPTION; grant all privileges on *.* to 'root'@'localhost' identified by 'root' WITH GRANT OPTION; FLUSH PRIVILEGES;
- 退出MySQL
mysql> exit Bye root@12c07c9fc028:/#
- 退出容器
root@12c07c9fc028:/# exit exit [root@localhost ~]#
- Navicat远程登录



