Phi*_*kis 4 docker spring-boot
我是新手,docker我可能遗漏了很多东西,尽管我浏览了基本文档并且我正在尝试部署一个简单的 Spring Boot API
我已将API部署为docker-spring-boot .jar文件,然后docker使用以下命令安装并推送它:
sudo docker loginsudo docker tag docker-spring-boot phillalexakis/myfirstapi:01sudo docker push phillalexakis/myfirstapi:01然后我用 docker命令启动了APIrun:
sudo docker run -p 7777:8085 phillalexakis/myfirstapi:01
当我访问localhost:7777/hello 时,我得到了想要的响应
这是我的 Dockerfile
FROM openjdk:8
ADD target/docker-spring-boot.jar docker-spring-boot.jar
EXPOSE 8085
ENTRYPOINT ["java","-jar","docker-spring-boot.jar"]
Run Code Online (Sandbox Code Playgroud)
基于这个回答的帖子这个命令来获取ip address
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
Run Code Online (Sandbox Code Playgroud)
所以,我运行它,container_name_or_id = phillalexakis/myfirstapi:01我收到这个错误
Template parsing error: template: :1:24: executing "" at <.NetworkSettings.Networks>: map has no entry for key "NetworkSettings"
Run Code Online (Sandbox Code Playgroud)
如果我设法以某种方式获得,IP我是否能够访问它并获得相同的响应?
这就是我的想法:ip:7777/hello
您使用了图像名称而不是容器名称。
通过执行获取容器名称docker ps。
容器 ID 是第一列中的值,容器名称是最后一列中的值。您可以同时使用两者。
然后,当您拥有 IP 时,您将能够在 访问您的 API IP:8085/hello,而不是IP:7777/hello
端口 7777 在 Docker 主机上可用并映射到容器上的端口 8085。如果您直接访问容器 - 您这样做,当您使用其 IP 地址时 - 您需要使用容器公开的端口。
还有另一种选择:
您可以在启动时通过指定--name参数为容器命名:
sudo docker run -p 7777:8085 --name spring_api phillalexakis/myfirstapi:01
Run Code Online (Sandbox Code Playgroud)
现在,从您的 Docker 主机,您可以使用该名称访问您的 API: spring_api:8085/hello
| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |