【发布时间】:2019-03-09 01:53:30
【问题描述】:
我有以下 docker 文件...
FROM openjdk:11-jdk-slim
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Dexternal.config.active='false'","-jar","/app.jar"]
还有弹簧配置...
docker {
springBootApplication {
baseImage = 'openjdk:11-jdk-slim'
ports = [9090, 8080]
tag = 'app:0.2'
}
}
一切似乎都开始了文件,我看到了
Started Application in 8.743 seconds (JVM running for 9.153)
我明白了……
f46b4cbfa799 646eced45077 "java -jar /app/simp…" 15 minutes ago Up 15 minutes 8080/tcp, 9090/tcp mystifying_kirch
但是当我运行docker inspect <imageId> | grep "IPAddress" 并像http://<IP>:8080 这样在浏览器中输入该地址时,我收到超时错误。我知道我可以在运行时使用端口映射,但是有没有一种方法可以在不映射到本地主机的情况下做到这一点?
我也试过这个...
curl 172.17.0.2:8080
curl: (7) Failed to connect to 172.17.0.2 port 8080: Operation timed out
所以不是浏览器。
也试过这样映射...
0.0.0.0:8080->8080/tcp, 9090/tcp
但是 localhost:8080(或 ip 地址)发送一个空响应“没有发送任何数据。”
【问题讨论】:
-
你使用哪个 docker 命令来运行镜像?
-
第一个是直接从 gradle 插件提供的。当那不起作用时,我尝试使用docker手动运行它(我传递了一堆环境)... docker run -e DB_URL=$DB_URL -e DB_PORT=$DB_PORT -e DB_USER=$DB_USER ... -p 8080:8080 646eced45077
-
另一个问题:docker引擎运行在哪个操作系统上?
-
您需要在 Dockerfile 中公开您的容器端口。示例:EXPOSE 8080。docs.docker.com/engine/reference/builder/#parser-directives
-
这就是我使用的例子 FYI dzone.com/articles/…
标签: docker