玩转 Docker—部署 Spring Boot+MySQL 工程实战
1 搭建 Spring Boot+MySQL 项目
1.1 项目依赖
1.2 配置文件
1.3 具体代码
HelloDao.java
HelloController.java
2 编写 Dockerfile
3 导出数据库
在 MySQL 安装目录的/bin 目录下执行以下命令:
数据库信息:
4 复制 SQL 数据
在宿主机中执行以下命令:
在已安装 MySQL 的 docker 容器中执行以下命令:
5 将 Spring Boot 容器和 MySQL 容器进行联通
使用 Docker 命令查看 IP 地址
经过查看我们发现,Docker 的网络默认是桥接网络,即每个容器都属于同一网段,图示:
(图片来自https://www.cnblogs.com/ygria/p/13217793.html)
因此,我们把 Spring Boot 项目的配置文件修改下:
如果条件允许可直接使用域名。
然后再重启 Spring Boot 则可以进行 MySQL 的访问和使用
扩展:Docker 网络
Docker 的网络子系统是可选的,使用驱动程序。默认情况下存在几个驱动程序,并提供核心网络功能:
bridge
:默认网络驱动程序。如果您未指定驱动程序,则这是您正在创建的网络类型。当您的应用程序在需要通信的独立容器中运行时,通常会使用桥接网络。host
:对于独立容器,去掉容器与 Docker 主机之间的网络隔离,直接使用主机的网络。overlay
: Overlay 网络将多个 Docker 守护进程连接在一起,使 swarm 服务能够相互通信。您还可以使用覆盖网络来促进 swarm 服务和独立容器之间的通信,或者不同 Docker 守护程序上的两个独立容器之间的通信。这种策略消除了在这些容器之间进行操作系统级路由的需要。ipvlan
:IPvlan 网络使用户可以完全控制 IPv4 和 IPv6 寻址。VLAN 驱动程序建立在此之上,为对底层网络集成感兴趣的用户提供了对第 2 层 VLAN 标记甚至 IPvlan L3 路由的完全控制。macvlan
:Macvlan 网络允许您将 MAC 地址分配给容器,使其在您的网络上显示为物理设备。Docker 守护进程通过它们的 MAC 地址将流量路由到容器。macvlan
在处理期望直接连接到物理网络而不是通过 Docker 主机的网络堆栈路由的遗留应用程序时,使用驱动程序有时是最佳选择。none
:对于这个容器,禁用所有网络。通常与自定义网络驱动程序一起使用。none
不适用于 swarm 服务。
版权声明: 本文为 InfoQ 作者【Barry Yan】的原创文章。
原文链接:【http://xie.infoq.cn/article/e54e5bf3297633b9101168cf0】。文章转载请联系作者。
评论