【发布时间】:2021-11-21 02:42:01
【问题描述】:
我想与两个 docker 容器通信。我是 Docker 新手,我尝试了很多不同的方法。
首先我制作了 2 个不同的 Dockerfile
myJavaAPI Dockerfile:
FROM java:8
WORKDIR /app
COPY . .
EXPOSE 4016:23503
CMD java -jar myJavaServerApi.jar
java API 监听 localhost:4016 并提供来自 127.0.0.1:23503 的数据
其他 Dockerfile:
FROM python:3.8
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
EXPOSE 23503:23503
CMD ["python","./myDaemonServer.py"]
myDaemonServer 从 23503 获得连接并做一些工作。
我尝试在我的机器上运行这 2 个文件,一切正常。但是当我创建 Docker 这两个容器无法通信时,myDaemonServer 看不到我的 Java API。
我使用这些命令构建了我的图像:
docker build -t dockerjava .
docker build -t dockerdaemon .
并通过以下方式运行它:
docker run -d <ImageID>
首先我运行 dockerjava,然后我运行 dockerdaemon
另外,我尝试了这个命令,没有任何改变:
docker run -p --net=host <DockerImageIDs>
我该如何解决这个问题?
编辑:守护进程(python 文件)监听 127.0.0.1:23503 并从 5002 端口提供服务。
【问题讨论】:
标签: docker dockerfile containers