如何从主机访问Docker容器的Web服务器

 假面的告白1993_931 发布于 2022-12-09 12:08

我在boot2docker 1.3.1下运行.

我有一个运行Web服务器的Docker容器uwsgi --http :8080.

如果我附加到容器,我可以使用浏览网站,lynx http://127.0.0.1:8080所以我知道服务器正在运行.

我运行我的容器:

$ docker run -itP --expose 8080 uwsgi_app:0.2

它有以下细节:

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
5248ad86596d        uwsgi_app:0.2     "bash"              11 minutes ago      Up 11 minutes       0.0.0.0:49159->8080/tcp   cocky_hypatia
$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' 5248ad86596d
172.17.0.107

我以为我可以通过访问来自我的主机访问该网站http://172.17.0.107:49159.

这不起作用.我只是在Chrome中看到"连接......",无处可去.

我究竟做错了什么?

3 个回答
  • 要查找容器的IP地址,您不需要额外安装:

    docker inspect <container>
    

    这提供了丰富的信息.grep它用于IP地址.

    2022-12-11 01:59 回答
  • 好的,愚蠢的我,我在boot2docker的文档中找到了答案 https://docs.docker.com/installation/mac/#container-port-redirection

    我需要使用boot2docker vm的ip地址,而不是容器的ip,即

    $ boot2docker ip
    192.168.59.103
    

    我可以从主机上浏览我的网站 http://192.168.59.103:49159/

    我不需要route在主机上添加任何内容

    2022-12-11 03:08 回答
  • 扩展Anentropic的 答案: boot2docker是Mac和Windows的旧应用程序,docker-machine是新的应用程序 .

    首先,列出你的机器:

    $ docker-machine ls
    
    NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
    default   *        virtualbox   Running   tcp://192.168.99.100:2376
    

    然后选择其中一台机器(默认调用一台机器default)和:

    $ docker-machine ip default
    
    192.168.99.100
    

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