Centos虚机使用docker安装mysql,并实现自动备份
这次安排的学习任务分为了6个小任务:
- 安装centos,版本7.6,最小化安装
- 安装docker
- 通过docker安装mysql,并连接windows
- 实现自动备份数据库
- 写一个数据库读写的程序,代码打包到docker部署在虚拟机上
- 拓展虚机的硬盘,把新增的硬盘挂载到根目录
Centos7.6最小化安装并安装docker
首先下载VMware Workstation 16,下载网址:www.lxlinux.net/7001.html 安装完成之后,下载centos的镜像并安装,参考:blog.51cto.com/u_11580232/…
安装过程基本没有难点,注意在安装时选择minium版本,网络连接模式选择NAT模式,桥接模式和NAT模式的异同可以参考:blog.csdn.net/Luisazong/a… 简单来说就是NAT模式是虚拟机链接虚拟机交换机后,通过在宿主机上的VMware虚拟网卡再连接宿主机网卡进行通讯,而桥接模式不再连接虚拟网卡,直接连接宿主机网卡进行通讯,相当于形成了一个局域网。
安装完成后进入界面
由于一开始安装时采用了桥接模式,需要手动配置虚拟机ip地址,子网掩码后才能上网。配置方法为修改/etc/sysconfig/network-scripts下的ifcfg-ens33文件。命令为:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
进入界面修改得到:
主要需要修改 BOOTPROTO(boot开启操作系统,proto原型机,粗浅的理解为网络启动模式)为static,采用静态ip,ipaddr设置ip地址,gateway设置网关,注意ipaddr需要和gateway在一个网络段下,即子网掩码对应网络号的部分要相同。
如果需要虚拟机和主机能互相ping通,就需要设置ip地址和主机ip在一个网络段下,例如都为192.168.85.xxx,如果采用NAT模式,网络段需要和虚拟网卡的ip在同一网络段下。如果虚拟网卡,虚拟机ip,虚拟机网关不在一个ip,那么互相是ping不通的。
尝试ping 192.168.85.188通过后,虚拟机成功连接上了宿主机网络。
接下来尝试安装docker,参考文档:www.runoob.com/docker/cent… 命令:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
如果出现Could not resolve host:xxxx的情况,说明网络没有配置好,需要重新检查网络配置。(命令curl的使用方法参考:www.ruanyifeng.com/blog/2019/0… ,curl fsSL参数f:fail时返回22代码,s:silent不显示进度错误,S:show-error显示错误信息,L:location允许跟随服务器重定向)
docker安装mysql,并连接windows
首先尝试docker是否正常运行
docker ps 显示所有正在运行的容器 -a参数显示所有容器包括停止的
出现报错
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
说明docker服务没有运行
systemctl restart docker
运行docker
systemctl enable docker
将docker添加入开机运行列表,这样就不用每次开机后都重启一次docker了
docker安装mysql的过程参考blog.csdn.net/allway2/art…
docker pull mysql下载镜像,然后创建一个mysql容器
docker run --name mysql01 -d -it -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456
-d分离式后台运行 -it开启交互界面(在run命令时无需添加) -p 将虚拟机3307端口映射到容器的3306端口 -e 设置环境变量 将mysql密码设置为123456
给代码增加命令-v mysql-data:/var/lib/mysql 将数据库绑定之前创建的docker数据卷(docker volume create mysql-data)
完成mysql安装成功,显示:
0.0.0.0:3308->3306指所有指向3308端口的连接映射到容器内的3306端口
使用windows上的navicat连接192.168.85.188 3307端口成功