如何通过app容器-docker连接mysql容器的localhost:3306

2023-12-08

在我的应用程序设置中,我使用以下设置连接到数据库

spring.jpa.hibernate.ddl-auto=none
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/gosallowMultiQueries=true&createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=root

现在我有两个容器App和mysql。我已经链接了两个容器

docker run --name app --link mysql:dbalias appimage

但我收到通信链接失败错误。我无法连接 mysql 服务器

我使用下面的命令来运行 mysql 容器:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 mysql:latest

有什么建议吗?


你指的是localhost这意味着应用程序正在尝试连接localhost它自己的容器。不是您主机的本地主机。

如果这两个容器部署在同一用户定义的桥接网络内,您可以使用容器名称进行通信:

spring.datasource.url=jdbc:mysql://mysql:3306/gosallowMultiQueries=true&createDatabaseIfNotExist=true

如果不是,您可以使用 mysql 容器的容器 IP,但这可能会在容器重新启动/重新创建时发生变化。推荐的方法是创建用户定义的桥接网络:

$ docker network create my-network
$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
73df63463bb2        bridge              bridge              local
4cabe965c01d        host                host                local
c94ae182d8fa        my-network          bridge              local
93ec6f5bf028        none                null                local

并在同一网络中启动两个容器:

$ docker run --name mysql --network=my-network -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 mysql:latest

当两个容器在同一用户定义的网络内启动时,您可以使用容器名称进行通信(您可以通过以下方式进行测试)docker exec在其中一个容器内并尝试使用容器名称 ping 另一个容器)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过app容器-docker连接mysql容器的localhost:3306 的相关文章

  • “docker-compose run”命令后卷更改不持久(Django 的collectstatic)

    我有一个使用 Docker Compose 创建的 Django 环境 我正在尝试使用manage py collectstatic将我网站的静态文件复制到容器中的目录中 该目录 usr src app static 也是一个 Docker
  • docker 命名卷存储在哪里? [复制]

    这个问题在这里已经有答案了 我有这个docker compose yml file version 3 volumes jenkins home services registry image registry 2 ports 5000 5
  • C++ 中带有 lambda 的简单自定义迭代器

    假设我有一个容器 其中包含int 一个作用于包含以下内容的容器的函数Point 并且我有一个函数可以给出一些int给我相应的Point它代表 想象一下我已经在一些大的场景中索引了场景中的所有点std vector
  • 在 docker 镜像中包含层有哪些优点?

    假设我有两个不同的 Dockerfile 图像一名为 nudoc my base image 1 1 FROM ubuntu 16 10 COPY test war 图像二名为 nudoc my testrun image 1 1 FROM
  • Consul 未取消注册僵尸服务

    我正在使用 marathon 部署一个简单的 hello world nginx 容器 一切似乎都运行良好 除了我有 6 个容器不会从 consul 注销 docker ps显示没有容器正在运行 我尝试使用 v1 catalog dereg
  • 使用 docker 在 NodeJS 上对 Postgres 进行 ECONNREFUSED

    我正在使用 postgresql 构建一个在 NodeJS 上运行的应用程序 我使用 SequelizeJS 作为 ORM 为了避免使用真正的 postgres 守护进程并在我自己的设备上使用 nodejs 我使用带有 docker com
  • Heroku 码头部署

    我正在关注这篇文章https devcenter heroku com articles container registry and runtime https devcenter heroku com articles containe
  • 如何获取已退出的 docker 容器的数字退出状态?

    当容器退出时 docker ps a显示其退出代码 滚动 docker run ubuntu bash c exit 1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c2c76
  • 无法通过docker连接到ASP.NET Core

    大家好 人们已经关注这个问题太久了 需要一些帮助 我制作了一个 ASP NET Core 网站 没有什么特别的 只是 VS 2017 v 1 1 附带的模板 我使用 dotnet core cli 发布网站并使用此 dockerfile 构
  • 如何在没有 Visual Studio 和 docker compose 的情况下使用 docker 复制 csproj 文件?

    我刚刚使用 Visual Studio 15 8 8 启动了一个 NET Core 项目 2 1 的新解决方案 通过将docker compose文件设置为启动项目即可运行和调试 有用 从逻辑上讲 我应该能够使用简单的命令行语句构建 doc
  • 如何扁平化 Docker 镜像?

    我做了一个相当大的 Docker 容器 当我提交容器来创建映像时 映像大约有 7 8 GB 大 但当我export容器 不是save图像 到 tarball 并重新导入 图像只有 3 GB 大 当然 历史记录丢失了 但这对我来说没问题 因为
  • 如何构建一个不链接到 musl libc 的 go 可执行文件

    So 官方的 Go 构建容器基于 Alpine 高山用途musl https www musl libc org 作为 libc 而不是 glibc 我需要在容器中构建一个可以在使用 glibc 的 Ubuntu 上运行的 Go 可执行文件
  • Docker Python 脚本找不到文件

    我已经成功构建了一个 Docker 容器 并将应用程序的文件复制到 Dockerfile 中的容器中 但是 我正在尝试执行引用输入文件 在 Docker 构建期间复制到容器中 的 Python 脚本 我似乎无法弄清楚为什么我的脚本告诉我它无
  • 带有 mysql 数据的 WordPress 图像

    是否有包含 wordpress 和 mysql 数据的可用图像 当我提交并备份映像时 不包括 mysql 数据 我更喜欢两者都用一张图片 我尝试使用这个 Dockerfile 创建这样的图像 FROM tutum lamp latest R
  • docker登录 - 存储凭据时出错 - 写入权限错误

    我正在运行一个docker login命令作为 Bamboo 构建作业的一部分 命令文本通过以下方式获得aws ecr get login调用并在子 shell 中执行 该命令失败并显示Error saving credentials er
  • 如何让 Docker 容器在系统启动时自动启动?

    假设我有一个要运行的 Docker 容器 那么我可以调用 docker run 一切都很好 是否有一种内置方法可以在系统崩溃并重新启动时自动重新启动容器来运行容器 如果是这样 这在 Docker Compose 中也可用吗 是的 docke
  • 导入错误:没有名为 google.auth 的模块

    当我尝试导入时firebase admin in python 2 7我收到错误 导入错误 没有名为 google auth 的模块 这是Docker文件 https github com ammaratef45 Attendance bl
  • Docker 运行与创建

    有什么区别docker run and docker create命令 我通常使用run但有时在文档中我看到create 码头工人的 help tells create Create a new container run Run a co
  • 您可以将标志传递给 docker 运行的命令吗?

    的文档run命令遵循以下语法 docker run OPTIONS IMAGE TAG DIGEST COMMAND ARG 然而我有时发现我想传递一个标志 COMMAND 例如 我一直在与这个图片 https github com mak
  • 将 docker-compose.yml 中的包安装到 docker 容器中

    我是 docker 和 docker compose 的初学者 我需要你的帮助 我正在使用 docker compose 制作 PHP NGINX PostgresQL symfony 开发环境 这里是 web image nginx 1

随机推荐

  • bis_skin_checked="1" 是什么意思?使用 chrome 代码源视图时,它显示在我的大多数元素上?

    我很困惑 我不知道 chrome AKA 版本 73 的最新更新是否只是故意集成了此属性 但我得到了一个奇怪的属性 我没有添加到我的网页中 我想知道这意味着什么铬合金 铬浏览器 边缘浏览器 我应该关心这个吗 它仅在 Chrome 上显示 遗
  • SVG 图案和渐变在一起

    有没有办法使用过滤器或 SVG 中的任何方法将图案和渐变一起应用于元素 我不想创建重复的元素 任何形状 来实现此目的 它是维护开销 下图是我的预期输出的示例
  • 如何快速将“2017-07-11T06:52:15.948Z”转换为“JUL, 7 2017”

    我正在尝试将字符串转换为日期 然后再次将日期转换为字符串 我在下面尝试过 但它给了我一个零值错误 let string 2017 07 11T06 52 15 948Z let dateFormatter DateFormatter let
  • python中生成器对象的大小

    对于以下代码 import sys x i for i in range 1 11 print x print Before starting iterating generator size is sys getsizeof x prin
  • 体现大于魔法方法

    我需要一种 大于 的反射魔法方法 但似乎没有 情况是这样的 我有一个跟踪单位的课程 这就是所谓的财产 我有神奇的方法设置来处理比较 但是当我将属性放在右侧时它不起作用 这是一个例子 class Property def init self
  • pandas to_datetime 不工作

    我好像无法申请to datetime到 pandas 数据框列 尽管我过去已经做过几十次了 下面的代码告诉我 在我尝试将 日期时间 列中的任何随机值转换为时间戳之后 它都是一个字符串 这 errors coerce 应该将任何解析错误转换为
  • Asp.net mvc 4 - 需要使用会话但不能使用cookie

    我正在研究一个ASP NET MVC 4应用 我需要使用会话来存储各种东西 我的任务是不使用 cookie 我有办法解决这个问题吗 我被告知 ASP NET MVC 4 无法在无 cookie 模式下工作 还有其他替代方法吗 编辑你的 we
  • 从不循环的数组列表中选择对象 - ANDROID

    我正在寻找一个可以像 SQL where 命令一样从 ArrayList 中选择对象的库 我的项目中有巨大的数组列表 2000 到 20000 之间 我不想每次都编写 for while 循环 我找到了 lambdaj 它适用于 Java
  • 无法从已释放的脚本执行代码

    我有一个在不同框架中需要重写的函数 此外 我需要从我的覆盖中调用原始函数 为此 我使用以下方法 myFrame SomeFunction function var originalSomeFunction myFrame SomeFunct
  • 随机背景颜色变化

    我试图通过单击按钮将主体背景颜色更改为随机颜色
  • numpy recarrayappend_fields:无法附加日期时间的numpy数组

    我有一个包含各种字段的记录 我想在其上附加一个日期时间对象数组 然而 似乎append fields函数于numpy lib recfunctions不允许我添加对象数组 这是一些示例代码 import numpy as np import
  • .NET Color 中的 RGB 格式

    我一直在检查有关 Color 的文档 我正在编写一个 C 程序 将颜色设置为 Color 如果你看到那里 它会根据8 bitRGB 值 换句话说 我认为这是 RGB 888 格式 我猜 我在相机中使用 RGB 565 格式 5 位用于 R
  • 通过 foursquare 场地 api 在全世界搜索查询

    我从用户那里获取一个字符串 并且必须搜索它在全世界的位置 我想使用 foursquare 场地 api 但在那个端点我必须通过 ll和半径 或 sw和ne 或 近和半径 设置搜索范围 现在如何在全世界搜索字符串的位置 您可以设置intent
  • 从 Excel 导出 XML 并保留日期格式

    许多 StackOverflow 帖子和其他在线论坛都有与此类似的问题 但它们都没有真正解决我遇到的问题 我正在从 Excel 导出 XML 文件 Excel 文件包含日期 然而 在 XML 文件中 这些日期显示为整数 我相信该日期是自 1
  • 防止 jQuery html() 中的 XSS

    我使用 ajax 从数据库接收数据 然后使用 html jQuery 函数将其与 HTML 代码一起添加到网站 如下所示 ajax url getDatabaseData php type post dataType json succes
  • 在 PHP 中将字符串拆分为多个分隔符

    我可以使用逗号分割字符串preg split like words preg split string 如何使用点 空格和分号来分割字符串 附言 我在 PHP preg split 页面上找不到任何相关示例 这就是我问的原因 尝试这个
  • Laravel 5.2 上缺少 'Illuminate\Routing\ControllerServiceProvider' 类

    我已按照 Laravel 5 2 文档升级指南中的说明更新了composer json 文件并运行composer update 一切都已正确更新 但作曲家在生成自动加载文件时转储 了以下错误 Class Illuminate Routin
  • 在 gradle 文件中包含 Retrolambda 时,Retrofit 2.0 xml simplexml 转换器出现问题

    这是我的 gradle 文件 apply plugin com android application apply plugin me tatarka retrolambda android compileSdkVersion 23 bui
  • 操作数应包含 1 列 [重复]

    这个问题在这里已经有答案了 SELECT topic id FROM phpbb topics AS t WHERE t topic id IN SELECT p topic id COUNT p post id AS total post
  • 如何通过app容器-docker连接mysql容器的localhost:3306

    在我的应用程序设置中 我使用以下设置连接到数据库 spring jpa hibernate ddl auto none spring datasource driver class name com mysql jdbc Driver sp