获取docker容器的ip地址

 兰州老头_337 发布于 2023-01-12 12:12

我有一台ubuntu机器,这是我在其中安装了docker的VM.我从我的本地Windows机器上使用这台机器并做ssh,打开终端到ubuntu机器.

现在,我将拍摄一个包含所有必要软件的docker镜像,例如:安装在其中的apache.稍后我将部署一个示例应用程序(它是一个Web应用程序,并保存它.

现在,我处于一种混乱模式,如果它正常运行,如何检查已部署的应用程序.即,包含已部署应用程序的容器的地址是什么.例如: - 如果我输入http://127.xxx这是ubuntu机器的地址,我只是抽出时间.

谁能告诉我如何验证已部署的应用程序.此外,在控制台上打印程序的输出工作似乎很好,因为输出打印,只有我有一些疑问是关于Web应用程序.

2 个回答
  • 有一些可能性来检查您的应用程序是否正在运行.

    远程API

    正如JimiDini所说,一种可能性是Docker远程API.您可以使用它来查看所有正在运行的容器(这将是您的用例,对吗?),检查某个容器或启动和停止容器.API是一种REST-API,具有多种编程语言绑定(https://docs.docker.io/reference/api/remote_api_client_libraries/).其中一些非常过时.要从另一台机器使用Docker远程API,我需要显式打开它:

    docker -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock -d &
    

    请注意,API现在向全世界开放!在实际情况中,您需要以某种方式保护它(例如,请参阅http://java.dzone.com/articles/securing-docker%E2%80%99s-remote-api上的示例).

    Docker PS

    要查看docker ps在主机上运行的所有正在运行的容器 这将列出所有正在运行的容器.如果您没有看到您的应用,则表明它未运行.它还会显示您的应用程序正在公开的端口.您也可以通过远程API执行此操作.

    日志

    您还可以查看日志.您可以运行docker attach <container id>以附加到某个容器并查看其标准输出.您也可以运行run docker logs <container id>来接收Docker日志.我更喜欢将日志写入某个目录,例如所有日志,/var/log并将此文件夹挂载到我的主机.然后,您的所有日志都将/home/ubuntu/docker-logs在您的主机上结束.

    docker run -p 80:8080 -v /home/ubuntu/docker-logs:/var/log:rw my/application
    

    一个字到端口和IP

    每个容器都将获得自己的IP地址.您可以通过远程API或主机上的Docker直接检查此IP地址.您还可以为容器指定某个主机名(通过传递--hostname="test42"run命令).但是,你大多不需要那样做.

    要访问容器中的应用程序,您需要打开容器中的端口并绑定到主机上的端口.

    在Dockerfile中,您需要EXPOSE运行应用程序的端口:

    FROM ubuntu
    ...
    EXPOSE 8080
    CMD run-my-app.sh
    

    启动容器时,需要将此端口绑定到主机的端口:

    docker run -p 80:8080 my/application
    

    现在,您可以访问http://localhost:80或访问您的应用http://127.0.0.1:80.

    如果您的应用程序没有响应,请通过键入docker ps或远程API 检查容器是否正在运行.如果它没有运行,请检查日志以找出原因.

    (注意:如果您在VirtualBox中运行Ubuntu VM并尝试从Windows机器访问它,请确保您也在VirtualBox中打开了端口!).

    2023-01-12 12:13 回答
  • Docker容器有一个单独的IP地址.默认情况下它是私有的(只能从主机访问).

    Docker通过其API提供所有元数据(包括IP地址):

      https://docs.docker.io/reference/api/docker_remote_api_v1.10/#inspect-a-container

      https://docs.docker.io/reference/api/docker_remote_api_v1.10/#monitor-docker-s-events

    您还可以查看一个名为docker-gen的小工具来获取灵感.它使用模板监视docker-events并在主机上创建配置文件.

    2023-01-12 12:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有