gpt4 book ai didi

docker - 如何配置 docker compose 以正确公开端口?

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

我正在使用 docker 和 docker compose 与 postgres 一起运行 clojure 和节点应用程序。

该项目包含在以下文件夹结构中。

project/
-- app/
-- -- Dockerfile
-- frontend/
-- -- /Dockerfile
-- docker-compose.yml

app/Dockerfile 看起来像这样......

FROM clojure:latest
COPY . /usr/src/app
WORKDIR /usr/src/app

EXPOSE 9000

CMD ["lein", "run", "migrate", "&&","lein", "run"]

frontend/Dockerfile 看起来像这样......

FROM node:5
COPY . /usr/src/app
WORKDIR /usr/src/app
RUN npm install

EXPOSE 8080

CMD ["npm", "start"]

最后 docker-compose.yml 看起来像...

frontend:
image: bradcypert/node
volumes:
- ./frontend:/usr/src/frontend
ports:
- "8080:8080"

backend:
image: bradcypert/clojure
volumes:
- ./app:/usr/src/backend
ports:
- "9000:9000"
links:
- postgres

postgres:
image: postgres
ports:
- "5432:5432"

后端由于其他原因而失败,但前端似乎运行成功,也就是说,我无法点击 localhost:8080 并查看应用程序。我需要做什么才能做到这一点?

提前致谢。

澄清一下,正在运行的命令是 docker-compose up

最佳答案

使用 boot2docker(在 Mac 或 Windows 上),从 localhost 访问任何端口,您必须配置您的 VirtualBox 虚拟机,以便将该端口从虚拟机端口转发到主机。

你的端口映射是正确的,但你仍然需要让你的主机(Mac)看到你想从本地主机(你的 Mac)访问的一个端口。

例如,请参阅 Using boot2docker to run Docker on a Mac or Windows 中的“Andrew Odewahn” :

enter image description here

那样的话,你就不用去查自己机器的IP是多少了。
(你可以看到 docker-machine ls 后跟 docker-machine ip <name> )

关于docker - 如何配置 docker compose 以正确公开端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37770718/

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