我是Docker
的新手,虽然我阅读了基本文档,并尝试部署一个简单的Spring BootAPI,但我可能缺少很多东西
我已经将API部署为docker-spring-boot
.jar文件,然后安装docker
并使用以下命令推送它:
SUDO docker登录
SUDO docker标记docker-spring-boot phillalexakis/myfirstAPI:01
SUDO docker推送Phillalexakis/MyFirstAPI:01
然后使用dockerrun
命令启动API:
SUDO docker运行-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"]
根据这个应答的命令,发布这个命令以获取IP地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
因此,我使用container_name_or_id=phillalexakis/myfirstapi:01
运行它,得到了这个错误
Template parsing error: template: :1:24: executing "" at <.NetworkSettings.Networks>: map has no entry for key "NetworkSettings"
如果我设法获得IP
,我是否能够访问它并得到相同的响应?
这就是我脑子里想的:IP:7777/Hello
您使用的是映像名称,而不是容器名称。
通过执行Docker ps
获取容器名称。
容器ID是第一列中的值,容器名称是最后一列中的值。两者都可以用。
然后,当您拥有IP时,您将能够访问IP:8085/hello
的API,而不是IP:7777/hello
端口7777在Docker主机上可用,并映射到容器上的端口8085。如果您直接访问容器--当您使用它的IP地址时,您会这样做--您需要使用容器公开的端口。
还有另一种选择:
您可以通过指定--name
参数,在启动容器时为其指定一个名称:
sudo docker run -p 7777:8085 --name spring_api phillalexakis/myfirstapi:01
现在,从Docker主机上,您可以使用以下名称访问API:spring_api:8085/hello
这是我的docker-compose.yml代码: 下面是我的traefik.toml代码:
问题内容: 我在Mac OS X上使用自制软件设置了jenkins,它 可以通过主机正常工作,或者无法通过主机名/ ipaddress访问jenkins实例: 即使从本地计算机(詹金斯主机本身)也无法访问这两个链接。同时执行命令并正常工作。 问题答案: 事实证明,启动代理配置为仅侦听127.0.0.1(或localhost)。要修复该詹金斯经纪人的plist: 并修改为而不是
问题内容: 我正在尝试跟踪和记录使用PHP 来访问我的网站的用户/访问者。PHP中IP地址跟踪的一种典型方法。 但是,我正在使用CloudFlare进行缓存等,并以CloudFlare的方式接收其IP地址: 108.162.212。-108.162.239。 在仍然使用CloudFlare的同时检索实际用户/访问者IP地址的正确方法是什么? 问题答案: 云耀斑可用的其他服务器变量是: 真正的访客I
如何访问postgres-docker container其他docker container没有ip地址?我想通过使用MyWeb将数据存储在postgres中。在jar中给定主机,如localhost:5432/db。 这是我的作曲文件:
问题内容: 如何在Node.js HTTP服务器应用程序中通过IP地址限制访问? 我正在寻找这样的东西: 我只需要允许访问该站点的几个IP地址。我怎样才能做到这一点? 问题答案: 我不确定这种方法的安全性,但这里是从网上答案中收集的: 请,一个更精通节点的人-纠正我
我有两个docker容器在我的Mac主机上运行-容器1是docker Hub的Jenkins,容器2是docker Hub的SonarQube。我有两个容器成功运行。我可以通过从我的主机访问Jenkins,我可以通过访问我的SonarQube。 詹金斯容器是这样启动的: SonarQube容器是这样启动的: 难道我不应该能够从我的主机通过它们的内部IP地址访问每个容器吗? 我如何测试一个容器(例如