gpt4 book ai didi

Docker 容器 - 连接建立

转载 作者:行者123 更新时间:2023-12-02 18:22:13 24 4
gpt4 key购买 nike

我是 docker 新手。

我有一个名为 Server 1 的实例。

我在服务器 1 中部署了一个 java 应用程序,它连接服务器 2 的 mongo db,服务器 3 的 Elasticsearch 。

在服务器 1 中安装 Docker。

我希望通过服务器 1 中的 docker 部署 java 应用程序。
写了一个Dockerfile来部署容器中的java应用,暴露了一个端口。
运行,应用程序运行成功。

http://Server-1 中检查了该应用程序IP:暴露端口

但是当我尝试登录时,它会报告登录错误。

如何建立容器与服务器 2(mongo db)、Server3(Elastic Search) 的连接或如何纠正上述错误

试图将主机的网络分配给容器
它报告:

#docker run -d -p 8116:8116 -m 256m myapp1 --net="host"
421a0c63dd9aea3702eb241721e31c0a0c06357daa555b6155567540896aa014
/usr/bin/docker-current: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"--net=host\\\": executable file not found in $PATH\"\n"

但是如果我最初没有使用网络模块并尝试分配主机的网络容器,
它报告:
#docker run -d -p 8116:8116 -m 256m myapp1
421a0c63dd9aea3702eb241721e31c0a0c06357daa555b6155567540896aa014

#docker run -d -p 8116:8116 -m 256m myapp1 --net="host"
0bfe71e4c4cab1391735ecb45fa72a025d9c5ff99fddaf42c0b3a252e1eb826c
/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint evil_goldwasser (03685ca753672a8cd5fab3e6a35d7569536
46ed9f45e9a927d2ccf1dd532da34): Bind for 0.0.0.0:8116 failed: port is already allocated.

最佳答案

导出端口就足够了,例如,使用 -p 8116:8116以便可以从外部服务器在该端口上访问 app/mongo db/Elastic Search。你不需要--net="host"为了那个原因。
... \"exec: \\\"--net=host\\\": executable file not found in $PATH\"\n" 的错误是因为你通过了--net="host"执行docker run时在错误的地方.所有 docker run 选项都应该在 docker 镜像的名称之前,在您的情况下是 myapp1。
当您添加 --net="host" myapp1 之后的选项实际上是指示 docker run 使用 myapp1 镜像启动一个新容器并执行命令 --net="host"这当然在 $PATH 上不存在。所以这就是你得到这个错误的原因。

关于Docker 容器 - 连接建立,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48984135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com