docker容器无法与同一网络上的其他容器通信

感到羞耻

我有两个应该互相通信的图像。第一个图像是Web API,第二个图像是Web本身。

在构建和运行映像之前,我nat使用以下命令创建一个名为的新网络

docker network create nat

此后,我开始创建映像,该映像image-api在端口8080和image-web8081上运行。

然后,我image-api使用以下命令运行图像:

docker run -d -p 3000:8080 --network nat image-api

我将容器端口映射8080到了主机端口3000我尝试3000在浏览器中访问localhost端口,并且该端口正在运行,没有错误,并给了我应有的响应。

这里的问题是第二张image-web图片。我尝试使用以下命令运行它:

docker run -d -p 3001:8081 --network nat image-web

当我尝试localhost:3001在浏览器中访问时,它正在运行,但没有提供来自image-api容器的数据当我尝试记录image-web容器时,它给我一个错误,例如:

Error: getaddrinfo ENOTFOUND image-api

以防万一,我尝试使用如下URLimage-apiimage-web容器访问容器

http://image-api/ping

这是我的image-api Dockerfile:

FROM node:14 as builder
WORKDIR /app
COPY package.json /app
RUN npm install

FROM node:14
EXPOSE 8080
CMD ["node", "server.js"]
WORKDIR /server
COPY --from=builder /app/node_modules /server/node_modules
COPY server.js .

这是我的图像网络Dockerfile:

FROM node:14 as builder
WORKDIR /app
COPY package.json .
RUN npm install

FROM node:14
ENV IMAGE_URL=http://image-api/ping
EXPOSE 8081
CMD ["node", "app.js"]
WORKDIR /web
COPY --from=builder /app/node_modules /web/node_modules
COPY /src .

为了以防万一,我已经尝试在没有docker的情况下运行它们,并且它们应在本地计算机中运行。

编辑:

我还尝试过使用这样的名称运行容器:

docker run -d -p 3000:8080 --network nat --name imageapi image-api

并尝试使用以下方式访问它:

http://imageapi/ping

但这仍然给我同样的错误

解决方案:

正如@davidMaze指出的那样。使用--name标签运行我们的容器后我可以使用访问我的容器http://imageapi:8080/ping

大卫·迷兹

docker run --name启动容器时,您需要明确指定a 由于您可以从同一映像运行多个容器,因此Docker不会根据映像名称自动分配容器名称。您需要自己设置。

docker run -d -p 3000:8080 --network nat --name image-api image-api
docker run -d -p 3001:8081 --network nat --name image-web image-web

设置容器名称后,Docker将提供内部DNS服务,并且该名称可以从同一网络上的其他容器访问该容器。

Docker文档中的使用桥接网络对此进行了进一步描述,尽管与过时的网络模式形成了鲜明对比。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

同一网络中的Docker容器无法通信

来自分类Dev

同一网络中的Docker容器无法相互通信

来自分类Dev

Node + Flask服务器Docker容器无法通过同一网络进行通信

来自分类Dev

如何从与Docker主机位于同一网络的设备访问Docker容器?

来自分类常见问题

如何从主机外部(同一网络)连接到Docker容器[Windows]

来自分类Dev

访问由 docker-compose 在同一网络中创建的容器

来自分类Dev

Windows 7无法ping .local,但其他Windows 7可以在同一网络上

来自分类Dev

我无法连接到同一网络内的其他机器

来自分类Dev

将Docker容器与Azure管道中的当前容器连接到同一网络

来自分类Dev

从同一网络上的其他设备连接到Flask Server

来自分类Dev

无法从同一网络下的其他设备(Android手机)ping vm ip地址

来自分类Dev

如何防止同一网络上的其他主机切断我的Internet连接?

来自分类Dev

如何防止同一网络上的其他主机切断我的Internet连接?

来自分类Dev

在同一网络上通信的计算机

来自分类Dev

在其他设备(同一网络)上访问Localhost

来自分类Dev

ASP.NET Core Web API服务无法连接到同一网络上的Docker SQL Server

来自分类Dev

无法访问同一网络上的共享文件夹

来自分类Dev

无法解析同一网络上设备的IP地址

来自分类Dev

同一网络上的无线设备无法相互访问

来自分类Dev

如何使用iis在本地托管网站以供同一网络上的其他计算机访问?

来自分类Dev

将数据从网关节点复制到同一网络中的其他群集

来自分类Dev

如何与同一网络中的其他人共享油灰会话/屏幕?

来自分类Dev

我无法从同一网络上的另一台PC调用API

来自分类Dev

无法通过以太网和无线连接到同一网络

来自分类Dev

使用docker-compose无法在同一网络中连接mysql和spring boot

来自分类Dev

无法对同一网络VirtualBox上的两台计算机执行ping操作

来自分类Dev

无法在同一网络上的2个SQL服务器之间传输数据

来自分类Dev

Raspberry Pi Jessie Wi-Fi无法在同一网络上使用多个IP

来自分类Dev

除非在同一网络上,否则无法SSH进入计算机

Related 相关文章

  1. 1

    同一网络中的Docker容器无法通信

  2. 2

    同一网络中的Docker容器无法相互通信

  3. 3

    Node + Flask服务器Docker容器无法通过同一网络进行通信

  4. 4

    如何从与Docker主机位于同一网络的设备访问Docker容器?

  5. 5

    如何从主机外部(同一网络)连接到Docker容器[Windows]

  6. 6

    访问由 docker-compose 在同一网络中创建的容器

  7. 7

    Windows 7无法ping .local,但其他Windows 7可以在同一网络上

  8. 8

    我无法连接到同一网络内的其他机器

  9. 9

    将Docker容器与Azure管道中的当前容器连接到同一网络

  10. 10

    从同一网络上的其他设备连接到Flask Server

  11. 11

    无法从同一网络下的其他设备(Android手机)ping vm ip地址

  12. 12

    如何防止同一网络上的其他主机切断我的Internet连接?

  13. 13

    如何防止同一网络上的其他主机切断我的Internet连接?

  14. 14

    在同一网络上通信的计算机

  15. 15

    在其他设备(同一网络)上访问Localhost

  16. 16

    ASP.NET Core Web API服务无法连接到同一网络上的Docker SQL Server

  17. 17

    无法访问同一网络上的共享文件夹

  18. 18

    无法解析同一网络上设备的IP地址

  19. 19

    同一网络上的无线设备无法相互访问

  20. 20

    如何使用iis在本地托管网站以供同一网络上的其他计算机访问?

  21. 21

    将数据从网关节点复制到同一网络中的其他群集

  22. 22

    如何与同一网络中的其他人共享油灰会话/屏幕?

  23. 23

    我无法从同一网络上的另一台PC调用API

  24. 24

    无法通过以太网和无线连接到同一网络

  25. 25

    使用docker-compose无法在同一网络中连接mysql和spring boot

  26. 26

    无法对同一网络VirtualBox上的两台计算机执行ping操作

  27. 27

    无法在同一网络上的2个SQL服务器之间传输数据

  28. 28

    Raspberry Pi Jessie Wi-Fi无法在同一网络上使用多个IP

  29. 29

    除非在同一网络上,否则无法SSH进入计算机

热门标签

归档