一、拉取mysql5.7 docker镜像
1、不指定版本,那么拉取的就是最新的,这个在虚拟机、服务器可随意没关系
docker pull mysql
2、指定版本,在生产环境都是要指定版本的
docker pull mysql:5.7
二、docker images 查看镜像,如下拉取MySQL镜像成功
REPOSITORY:就是镜像的名字
TAG:就是版本号,不指定版本号拉取镜像时,默认拉取最新的为--latest版本
IMAGE ID:镜像ID
CREATED:拉取镜像的时间
SIZE:镜像的大小
三、创建存放容器的文件夹(建议统一容器文件夹为/opt/docker_c,方便管理)
mkdir /opt/docker_container
1)cd /opt/docker_container
2)mkdir docker_mysql
3)cd docker_mysql
4)echo $PWD($PWD它相当于/opt/docker_mysql/)
四、创建并启动容器
就在docker_mysql文件夹下,执行如下命令
1、方法一:它直接接着步骤3进行就行(推荐)
docker run -p 3305:3306 --name dockermysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d -i mysql:5.7 \
图四-1 就是创建成功了,如果不确定可通过步骤五
-d: 后台运行容器
-p 将容器的端口映射到本机的端口
-v 将主机目录挂载到容器的目录
-e 设置参数
2、方法二:它还要额外在docker_mysql文件夹下创建conf、logs、data文件夹
docker run -p 3304:3306 --name dockermysql
-v /opt/docker_mysql/conf:/etc/mysql/conf.d
-v /opt/docker_mysql/logs:/logs
-v /opt/docker_mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=abcde
-d mysql:5.7
五、docker ps查看容器是否创建成功
容器ID、镜像名称、
注意:状态为UP才是创建启动成功。
六、进入mysql容器,并登录mysql
1)docker exec -it mysqldocker bash,mysqldocker容器名称
2)mysql -uroot -p,接着输入密码123456(创建容器的时设置的),如下成功了
退出
七、开启远程访问权限(如果有密码了3、4步可不执行)
1)use mysql;
2)select host,user from user;
3)ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
4)flush privileges;
输入虚拟机/服务器主机地址、用户名、容器密码与端口,如图七-2这样就是远程连接成功了。我用的是SQLyog,用Navicat也是一样的道理。
注:端口号可能不是3306,我设置映射它的端口3305,密码为123456
包括在生产环境映射它的端口一般都是不会用3306的
八、docker logs -f --tail 容器ID查看日志,Ctrl+C退出,exit