云计算核心技术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/mys术Dql/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:3306 mocysql:8.0.23
好的,现在我们有一个正在运行的 MySQL,让我们更新我们的 Dockerfile 以激活应用程序中定义的 MySQL Spring 配置文件,并从内存中的 H2 数据库切换到我们刚刚创建的 MySQL 服务器。
我们只需要添加 MySQL 配置文件作为CMD定义的参数。
CMD ["./mvnw", "spring-bootke:run", "-Dspring-boot.run.profiles=mysql"]
让我们建立我们的形象
$ docker build --tag java-docker .
现在,让我们运行我们的容器。这一次,我们需要设置MYSQL_URL环境变量,以便我们的应用程序知道使用什么连接字符串来访问数据库。我们将使用该docker runr教命令执行此操作。
$ 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"Ja:1,"firstName":"James","lastName":"Carter","specialties":[],"nrOfSpecialties":0,"new":false},{"id":2,"firstName":"Helen","lastName":"Leary","specialtiesva":[{"id":1,"name":"radiology","new":false}],"nrOfSpecialties":1,"new":false},{"id":3,"firstName":"Linda","lastName":"Douglas","specialties":[{镜像"id":3,"name":"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","s器中pecialties":[{"id":1,"name":"radiology","new":false}],"nrOfSpecialties":1,"new":false},{"id":6,"firstName":"Sharon","lastName":"Jenkins","specialti运行es":[],"nrOfSpecialties":0,"new":false}]}
相关文章:
相关推荐:
- DeepSeek-V4预览版正式发布:1M 超长上下文进入全员普惠时代
- 标签: 字节跳动 飞书 信息安全 职业道德
- 标签: 元宝 腾讯 元宝派 AI社交
- 标签: 卓正医疗 港交所 何小鹏 金域医学
- 微软深化AI战略:Windows11核心集成 Copilot,支持语音控制、屏幕分析和本地自动化
- 标签: 欢聚集团 BIGO Ads Bigo Live 李婷
- AI鐢熸垚鐨勪唬鐮佷綘鏁㈢敤鍚楋紵鏈変汉缁欒蛋绾㈢殑Copilot鍋氫簡涓�€岄�闄╄瘎浼般€�
- 标签: Lululemon Calvin McDonald 第三季度财报 CEO卸任
- OpenAI 瑙f暎鏈哄櫒浜哄洟闃燂紝鍒涘�浜猴細鏈€濂界殑鍐冲畾
- 缁欎竴涓�瘝灏辫兘妯′豢浣犵殑绗旇抗锛孎acebook杩欎釜AI寮哄ぇ鍒颁笉鏁㈠紑婧愪唬鐮�
- https://www.kuaikanmanhua.com/sou/谷歌搜索留痕外推技术【tg:seogoogle987】,vQK
- https://www.teamlab.art/it/?submit=谷歌搜索留痕外推技术【tg:seogoogle987】,BmP
- https://www.niaogebiji.com/pc/article/search?keyword=谷歌搜索留痕外推技术【tg:seogoogle987】,Ahc
- https://www.urmc.rochester.edu/news/search?q=谷歌搜索留痕外推技术【tg:seogoogle987】,OPn
- https://www.nytimes.com/search?dropmab=true&query=谷歌搜索留痕外推技术【tg:seogoogle987】,b16
- https://www.vet-direct.com/search?cat=72&term=谷歌搜索留痕外推技术【tg:seogoogle987】,DFg
- https://www.totolink.vn/search/谷歌搜索留痕外推技术【tg:seogoogle987】,N43
- https://www.prattlibrary.org/search?q=谷歌搜索留痕外推技术【tg:seogoogle987】,wxC
- https://www.yidian51.com/taobao/谷歌搜索留痕外推技术【tg:seogoogle987】,ySN
- https://www.kubb-tool.bfs.admin.ch/en/search?action=CHECK&q=谷歌搜索留痕外推技术【tg:seogoogle987】,mCu
