本文主要目的是:在虚拟机环境下使用Docker,安装MySQL数据库,然后再局域网中访问它。
系统环境:
- Windows7 + 虚拟机CentOS 7
- MySQL 8.0
1、在Linux下安装Docker
1、查看centos版本
# uname -r
3.10.0-693.el7.x86_64
(要求:大于3.10; 如果小于的话需要升级)
# yum update
(运行这条命令要很长时间)
2、安装docker
# yum install docker
3、启动docker
# systemctl start docker
4、查看docker版本
# docker -v
5、停止docker
# systemctl stop docker
6、重启docker
systemctl restart docker
7、为了方便设置开机启动docker
# systemctl enable docker
2、在Docker中下安装MySQL
- 查找Docker Hub上的mysql镜像
1、搜索镜像
# docker search mysql/mysql-server
2、拉取镜像
# docker pull mysql/mysql-server
查看镜像列表
# docker images
3、根据镜像启动一个mysql的docker容器
# docker run --name=mysql01 -d mysql/mysql-server
参数-d:后台运行
4、查看全部容器列表
# docker ps -a
只查看运行中的容器
# docker ps
5、启动容器
# docker start 容器id
6、删除一个容器
# docker rm 容器id
7、关闭linux的防火墙
# service firewalld stop
查看防火墙状态
# service firewalld status
8、查看容器的日志
docker logs container-name或container-id
以上我们就完成了在docker中安装数据库,接下来我们要把docker上容器的端口映射到虚拟机,这样我们才能在局域网中通过Windows下Navicat工具访问docker容器中的MySQL。
3、端口映射
这里介绍两种端口映射的方式:
1)-p(小写)可以指定端口号3306:3306(外部虚拟机的端口号:Docker容器内的端口号)
# docker run --name mysql02 -p 3306:3306 -d mysql/mysql-server
2)-P(大写)随机生成端口号
# docker run --name mysql03 -P -d mysql/mysql-server
更多关于docker run的参数见附录
映射完成后我们使用docker ps
命令查看端口映射情况:
下面只以mysql02容器做演示,其他安装MySQL的docker容器可以同样操作。
1、查看mysql日志
# docker logs mysql02
2、查看自动生成的密码并记下来
# docker logs mysql02 2>&1 | grep GENERATED
[Entrypoint] GENERATED ROOT PASSWORD: ycgONsaqJIdLyS,ygR@xYJEhGon
3、运行mysql02容器里的MySQL,以root用户登录,密码为上面自动生成的密码
# docker exec -it mysql02 mysql -uroot -p
4、更改root用户的密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.08 sec)
5、退出
mysql> \q
Bye