Docker 是一个开源的应用容器引擎,基于Go 语言并遵从Apache2.0协议开源。
它可以实现多个容器之间隔离运行,保证互相不被干扰。下面将给大家演示,利用docker命令去安装Mysql 5和Mysql 8
安装Mysql 5
前提:需要安装好Docker情况下
步骤1:拉取Mysql镜像
docker pull mysql:5.6
查看当前所有的镜像
docker images
步骤2:创建并运行容器,同时设置登录密码
docker run -d --name mysql5.6-3306 -p 3306:3306 -e MYSQL_ROOT_PASSWORD='自己的密码' mysql:5.6
其中,参数含义如下:
-d : 以后台方式运行容器
--name : 容器的名称
-p : 容器端口映射,第一个3306是外界访问该容器的端口,第二个3306是内部映射的端口
步骤3:进入容器,并登录mysql
docker exec -it mysql5.6-3306 bash
mysql -uroot -p
然后输入前面自己设置的密码,即可登录mysql成功!
步骤4、授权其他机器登陆
1、授权主机访问:
MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '自己的密码' WITH GRANT OPTION;
2、刷新权限:
MySQL>FLUSH PRIVILEGES;
3、退出:
MySQL>EXIT;
安装Mysql 8
拉取mysql镜像
docker pull mysql:8.0
创建容器
docker run -d --name 容器名称 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=你的密码 mysql:8.0
创建完之后,可以查看一下所有的容器,检测是否安装成功
docker ps -a
STATUS如果显示未Exited代表容器的状态为"退出",Up代表正在运行
启动容器
docker start 容器id/容器名称
进入容器
docker exec -it 容器id/容器名称 bash
登录
mysql -u root -p
修改设置的密码,作用是可以远程访问Mysql(可不执行 该条命令,根据自己情况而定)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码'
总结
注意:如果需要远程访问Mysql容器,需要检查一下你当前服务器有没有开启防火墙并开放端口
查看防火墙的状态 (dead代表关闭 running代表已经开启)
systemctl status firewalld
没有开启防火墙的,执行下面这条命令
systemctl start firewalld
然后再查看开放的端口列表
firewall-cmd --list-ports
没有找到自己需要开放的端口,可以执行下面这行命令来开放3306 端口
firewall-cmd --permanent --add-port=3306/tcp
如果遇到什么问题,欢迎评论区提问,看到的话我都尽量回复