【问题标题】:Cannot connect to exposed Docker port无法连接到暴露的 Docker 端口
【发布时间】:2016-03-03 03:36:08
【问题描述】:

我正在使用最新的 Docker 工具箱在 OS X 上运行 Docker。

Docker version 1.10.2, build c3959b1
docker-machine version 0.6.0, build e27fb87
docker-compose version 1.6.0, build d99cad6

我在使用以下 Dockerfile 构建的容器中有一个 Java 应用程序:

FROM <my internal registry>/java:8

ENTRYPOINT ["java", "-cp", "/var/app/scheduler/scheduler-jar-with-dependencies.jar", "com.myapp.scheduler.Application"]

和 docker-compose.yml:

scheduler:
  image: <my internal registry>/scheduler
  command: -Dspring.profiles.active=local -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5050
  environment:
    TERM: xterm
  ports:
    - "4567:4567" # http port
    - "5050:5050" # java debug port
  volumes:
    - $SCHEDULER_GIT_ROOT/target:/var/app/scheduler
    - $LOG/scheduler:/var/log/scheduler

当我启动容器时,我可以使用虚拟机 IP (192.168.99.100:4567) 从浏览器访问 http 端口。但是,我无法将调试器连接到调试端口,也无法通过 telnet 访问该端口,无论我将端口更改为什么。 docker ps 产量:

CONTAINER ID        IMAGE                                             COMMAND                  CREATED             STATUS              PORTS                                            NAMES
9395e0f20dd5        <my registry>/scheduler          "java -cp /var/app/sc"   7 minutes ago       Up 7 minutes        0.0.0.0:4567->4567/tcp, 0.0.0.0:5050->5050/tcp   scheduler_scheduler_1

有人知道为什么我可以连接到一个端口,而不能连接到另一个吗?

编辑:这是来自docker inspect的命令:

"Path": "java",
"Args": [
    "-cp",
    "/var/app/scheduler/scheduler-jar-with-dependencies.jar",
    "com.mlbam.cms.scheduler.Application",
    "-Dspring.profiles.active=local",
    "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5050"
] 

【问题讨论】:

  • 可以发一下容器的docker inspect吗?我怀疑command 需要像入口点一样采用 exec 形式。
  • 因为一个进程正在监听你可以连接的一个端口,而没有进程使用另一个。

标签: java docker boot2docker docker-compose docker-machine


【解决方案1】:

这与 Docker 无关,而是与我运行 java 命令的方式有关。调试参数必须在 -cp 之前:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5050 -cp /var/app/scheduler/scheduler-jar-with-dependencies.jar com.myapp.scheduler.Application

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-31
    • 2018-02-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 2018-09-03
    • 2017-01-03
    • 1970-01-01
    相关资源
    最近更新 更多