当我在下面跑时
docker run --name foo -d -p 4000:1967 foo_service
我可以使用 curl 或任何浏览器(localhost:4000)从我的自定义 spring boot rest 端点获得响应,因此很明显 0.0.0.0:4000->1967/tcp端口映射按预期工作。
但是,当我在下面运行时
docker stack deploy -c docker-compose.yml foo_service
我无法访问任何容器,因此 localhost:4000 没有响应,并且容器在初始启动后立即重新启动。
我已经在选项 1 和选项 2 的所有容器中运行 netstat 命令。在选项 2 中,我可以看到端口 1967 正在被监听,但在选项 2 中,有一些随机端口(我猜,这是正常的,因为这些端口发布自己到 1967 年应用负载平衡)
堆
docker version 18.0 java 1.8.181 spring boot 2.1.1 (basic rest controller with one endpoint)
Dockerfile
FROM openjdk:8-jdk-alpine VOLUME /tmp EXPOSE 1967 ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
码头工人-compose.yml
version: "3" services: web: image: foouser/foorepo:foo deploy: replicas: 3 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "4000:1967" networks: - webnet networks: webnet:
有谁知道这里有什么问题?每个选项之间有什么区别?
问问题
31 次