【问题标题】:Docker Network Troubles with very simple docker-compose setup使用非常简单的 docker-compose 设置来解决 Docker 网络问题
【发布时间】:2018-05-30 22:37:11
【问题描述】:

自从我开始在 Mac OS X 上工作以来,我仍在努力学习如何在 docker 上工作,与在 Linux 上的表现相比,一切都让人头疼。

我正在尝试本教程,但在使用 docker compose 运行 php + apache 服务后卡住了,我无法连接到容器以检查我部署的 Web 环境中的文件:docker compose tutorial

容器运行正常,如果我执行docker inspect <container id> | grep "IPAddress",我会收到 IP 172.20.0.2

如果我将此 ip 放入浏览器或 ping 它,我不会得到任何响应。

是的,我设置了 172.20.0.2:8080

我的 docker-compose.yml:

version: '2'

services:
  php:
    build: apache-php
    ports:
      - "8080:8080"
      - "8443:8443"
    volumes:
      - ./apache-php/www:/var/www/html

我尝试过的:

  1. 在 /etc/hosts 中将 172.20.0.2 设置为类似 docker.web 的域
  2. 从 docker-compose.yml 中删除端口
  3. 尝试通过localhost:8080访问

有什么想法吗?

【问题讨论】:

  • 你试过在 docker-compose 文件中添加network_mode: hostservices: php: 吗?

标签: docker docker-compose containers docker-networking


【解决方案1】:

ports 设置控制哪些端口映射回您的主机。您是否尝试在浏览器中访问localhost:8080

编辑:将端口 80 从容器映射到主机是解决问题的方法。

【讨论】:

  • 是的,我也没有收到回复。
  • 您使用哪个命令来启动容器?你能发布docker-compose ps的输出吗?
  • 嗨,我正在使用 docker-compose up 来启动容器。我的 docker 文件有这个:FROM php:7.0-apache RUN docker-php-ext-install mysqlidocker-compose ps 的输出是:web_environment_php_1 docker-php-entrypoint apac ... Up 80/tcp, 0.0.0.0:8080->8080/ tcp, 0.0.0.0:8443->8443/tcp
  • 尝试将“80:80”添加到ports 设置并访问localhost:80。看起来容器正在端口 80 上公开 Web 内容,因此您需要将其映射回主机。如果您的主机已经绑定了 80 端口,请尝试另一个,例如“8088:80”,然后访问localhost:8088
  • 成功了!现在可以在 docker-compose.yml 上设置 80:80。我还设法找到一个后台 apache 工作并使用我的端口 80,这就是为什么我也尝试了“8080:80”conf 并且也工作了。虽然我不明白为什么会发生这种情况......在端口中:-“:”第一个端口是我想在我的主机中使用的端口,而 80 是容器将使用?
猜你喜欢
  • 1970-01-01
  • 2019-06-18
  • 2019-11-14
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多