查找Docker Hub上的mysql镜像:docker search mysql
拉取官方的镜像:docker pull mysql (不加版本默认是:latest)或 docker pull mysql:version (docker pull mysql:5.6)
查看本地镜像列表:docker images |grep mysql
删除镜像:docker rmi 镜像id
运行mysql:
docker run -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
1、拉取MySQL镜像
在进行MySQL容器的部署之前,需要先拉取MySQL镜像。可以通过以下命令拉取官方提供的MySQL镜像:
$ docker pull mysql
2、创建MySQL容器
a、先创建一个简单的mysql容器实例
docker run -p 3306:3306 --name sample-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:xxx(docker拉取的mysql的镜像版本号)
b、复制里面的/etc/mysql文件夹
docker cp sample-mysql:/etc/mysql/. /mydata/mysql/conf
c、删除掉临时容器
docker rm -f sample-mysql
d、启动完整的容器命令
docker run \
-p 3306:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
--privileged=true \
-d mysql:xxx(docker拉取的mysql的镜像版本号)
默认端口启动完整命令:
docker run -p 3306:3306 --name mysql --restart=always --privileged=true
-v /usr/local/mysql/log:/var/log/mysql
-v /usr/local/mysql/data:/var/lib/mysql
-v /usr/local/mysql/conf:/etc/mysql
-v /etc/localtime:/etc/localtime:ro
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
启动命令解释:
-p 3306:3306:指定宿主机端口与容器端口映射关系
–name mysql:创建的容器名称
–restart=always:总是跟随docker启动
–privileged=true:获取宿主机root权限
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
-d mysql:latest:后台运行mysql容器,版本是latest。
自定义端口启动完整命令:
docker run -p 13306:13306 --name mysql01 --restart=always --privileged=true
-v /mydata/mysql/log:/var/log/mysql
-v /mydata/mysql/data:/var/lib/mysql
-v /mydata/mysql/conf:/etc/mysql
-v /etc/localtime:/etc/localtime:ro
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
查看运行中的容器:docker ps
查看所有容器:docker ps -a
启动容器:docker start < NAME or ID>
停止容器:docker stop < NAME or ID>
删除容器:docker rm
查看日志:docker logs
Navicat连接启动的mysql
出现这个问题的话
1.查看正在运行的容器是否有需要连接的mysql:docker ps
如果没有,启动:docker start < NAME or ID>
2.进入mysql容器里面: docker exec -it < NAME or ID> bash
登录mysql : mysql -u root -p
输入密码123456
执行密码更新及远程登录授权:ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123654’;
查看数据库连接的用户:SELECT user, host FROM mysql.user;
新增数据库连接用户:CREATE USER ‘read’@‘%’ IDENTIFIED BY ‘123654’;
再次用Navicat连接
连接成功!
如有侵权,请联系本人