5.7 Docker数据库连接案例



1.概述

接下来,我们将使用dicker运行mysql数据库,并搭建一个web应用,web应用启动后连接数据库;

这俩个容器创建后,要互相连接通信,我们通过创建一个虚拟网络,并连接这俩个容器后,通过subnet参数手动维护网络参数进行通信;

使用参数--ip在虚拟网络中指定容器的固定网络网段;

在这里我们要实现数据库数据的持久存储,容器删除后,容器内的数据将全部丢失,为了实现数据永久存储,我们通过数据卷挂载到宿主机的方式实现;

2. 容器互联

2.1 创建docker虚拟网络

首先我们清理容器并删除此前的网络设置:

docker network rm my-net

然后创建docker虚拟网络:

docker network create --subnet=172.18.0.0/24 dockernet

创建后查看我们创建的网络:

ifconfig

docker network ls

docker inspect dockernet

在这里插入图片描述

2.2 创建数据卷

加载 mariadb 镜像

docker load < mariadb-docker-image.gz

# 查看当前已加载的镜像
docker images

创建数据卷

docker volume create mysql-data

查看数据卷详情:

docker inspect mysql-data

在这里插入图片描述

2.3 启动 mariadb 容器,并挂载数据卷

docker hub官网中,提供了marriadb启动的示例,我们可以查看官网了解具体使用详情:
在这里插入图片描述

  • 我们首先要使用-v参数将mysql-data宿主机上的存储目录挂载到mysql容器,对于具体的目录一般会记录在使用文档中,如果没有文档则需要自己进入容器中查找;
  • 通过环境变量参数MYSQL_ROOT_PASSWORD=root设置访问的管理员密码,其新版本添加了marriadb前缀的环境变量,但是因为我们使用的是旧版本,所以依旧使用mysql前缀;
  • 使用参数--net设置连接到dockernet网络,并使用参数--ip设置固定ip为172.18.0.11
  • 使用参数-p映射宿主机端口到3306
docker run -d --name mysql --net dockernet --ip 172.18.0.11 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mariadb

docker ps -a

启动之后,我们就可以使用客户端连接150服务器的3306端口了;

2.4 进入容器,登录mysql测试

docker exec -it mysql bash

mysql -uroot -p

在这里插入图片描述

2.5 连接数据库,导入数据

我们进入mysql客户端,创建新的连接:

在这里插入图片描述

连接成功后,导入数据:
数据库

导入项目中上传的sql文件:
在这里插入图片描述

导入完成后,刷新可以看到我们导入的数据库:
在这里插入图片描述

3. tomcat

创建 /opt/webapps 目录后,将web应用的打包文件 ROOT.war 上传到 /opt/webapps 目录:
在这里插入图片描述

然后将此文件夹挂载到tomcat的/usr/local/tomcat/webapps目录,并设置其网络和端口信息启动web应用:

docker run -d --name web-tomcat --restart=always --net dockernet --ip 172.18.0.12 -v /opt/webapps:/usr/local/tomcat/webapps -p 80:8080 tomcat

启动之后使用浏览器访问192.168.64.150,查看数据库中的信息:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值