云计算核心技术Docker教程:Java镜像在容器中运行数据库
首先,我们将看看在容器中运行数据库,以及我们如何使用卷和网络来持久化我们的数据并允许我们的应用程序与数据库对话。然后我们将把所有东西放在一个 Compose 文件中,它允许我们用一个命令设置和运行本地开发环境。最后,我们将看看将调试器连接到我们在容器内运行的应用程序。 无需下载 MySQL、安装、配置,然后将 MySQL 数云计据库作为服务运行,我们可以使用 MySQL 的 Docker 官方镜像并在容器中运行它。 在容器中运行 MySQL 之前,我们将创建几个卷,Docker 可以管理这些卷来存储我们的持久数据和配置。让我们使用 Docker 提供的托管卷功能,而不是使用绑定挂载。您可以在我们的文档中阅读有关使用卷的所有信息。 现在让我们创建我们的卷。我们将为算核数据创建一个,为 MySQL 的配置创建一个。 $ docker volume create mysql_data $ docker volume create mysql_config 现在我们将创建一个网络,我们的应用程序和数据库将使用该网络相互通信。该网络称为用户定义的桥接网络,它为我们提供了一个很好的 DNS 查找服务,我们可以在创建连接字符心技串时使用它。 $ docker network create mysqlnet 现在,让我们在容器中运行 MySQL 并附加到我们上面创建的卷和网络。Docker 从 Hub 拉取镜像并在本地运行。 $ docker run -it --rm -d -v mysql_data:/var/lib/mysql \ -v mysql_config:/etc/my术Dsql/conf.d \ --network mysqlnet \ --name mysqlserver \ -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic \ -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic \ -p 3306:33oc06 mysql:8.0.23 好的,现在我们有一个正在运行的 MySQL,让我们更新我们的 Dockerfile 以激活应用程序中定义的 MySQL Spring 配置文件,并从内存中的 H2 数据库切换到我们刚刚创建的 MySQL 服务器。 我们只需要添加 MySQL 配置文件作为CMD定义的参数。 CMD ["./mvnw", "spring-bokeot:run", "-Dspring-boot.run.profiles=mysql"] 让我们建立我们的形象 $ docker build --tag java-docker . 现在,让我们运行我们的容器。这一次,我们需要设置MYSQL_URL环境变量,以便我们的应用程序知道使用什么连接字符串来访问数据库。我们将使用该dockerr教 run命令执行此操作。 $ docker run --rm -d \ --name springboot-server \ --network mysqlnet \ -e MYSQL_URL=jdbc:mysql://mysqlserver/petclinic \ -p 8080:8080 java-docker 让我们测试一下我们的应用程序是否已连接程:到数据库并能够列出 Veterinarians。 $ curl --request GET \ --url http://localhost:8080/vets \ --header 'content-type: application/json' 您应该会从我们的服务中收到以下 json。 {"vetList":[{"id":1Ja,"firstName":"James","lastName":"Carter","specialties":[],"nrOfSpecialties":0,"new":false},{"id":2,"firstName":"Helen","lastName":"Leary","specialties":[va3;"id":1,"name":"radiology","new":false}],"nrOfSpecialties":1,"new":false},{"id":3,"firstName":"Linda","lastName":"Douglas","specialties":[{"id":3,"n镜像ame":"dentistry","new":false},{"id":2,"name":"surgery","new":false}],"nrOfSpecialties":2,"new":false},{"id":4,"firstName":"Rafael","lastName":"Ortega"在容,"specialties":[{"id":2,"name":"surgery","new":false}],"nrOfSpecialties":1,"new":false},{"id":5,"firstName":"Henry","lastName":"Stevens","specialti器中es":[{"id":1,"name":"radiology","new":false}],"nrOfSpecialties":1,"new":false},{"id":6,"firstName":"Sharon","lastName":"Jenkins","specialties":[],"nrO运行fSpecialties":0,"new":false}]}
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
-
- 三星 Galaxy XR 头显正式登场:1799 美元起,性能对标 Vision Pro,重量更轻、生态更开放
- 标签: 莫森泰克 汽车天窗 IPO 奇瑞
- 山粉是什么粉
- 标签: 金山云 智算云 雷军 邹涛
- 火山引擎发布四款强大大模型,语音合成与复刻功能再升级
- 标签: SpaceX Cursor xAI 马斯克
- 上海AI实验室发布首个视频转网页评测基准IWR-Bench:GPT-5综合得分仅36.35分
- OpenAI Sora2震撼发布:首日安装量与ChatGPT 上线时一样多
- 为补齐iPhone 12最大短板 苹果在iPhone 13上拼了
- 消息称阿里通义大模型前核心员工周畅加入字节跳动,被诉违反竞业协议
- 标签: BOSS直聘 灭蟑行动 AI风控 求职安全
- 什么是智能人机交互?
- 标签: 空中客车 A320系列 A350 A220
- Zoom瀹e竷灏嗕互147浜跨編鍏冩敹璐�簯鏈嶅姟鍏�徃Five9
- 不止Docker:8款容器管理开源方案
- 标签: 连连数字 章征宇 沈恩光 孙大利
- GPT-4o复活!OpenAI如何应对用户对新模型的情感依赖
- 澳大利亚立法强迫谷歌为新闻付费 美国隔空喊停
- 标签: 网信中国 清朗行动 直播打赏 团播乱象
- 鑳戒笌 GPT-3 鐩稿�缇庯紵EleutherAI 寮€婧� GPT-J
- 搜索
-