2017-04-16 67 views
0

我想在码头集装箱内使用wget连接到我的服务器自己的IP地址下载图像但它目前超时从未连接。码头工人内部wget(或任何连接)无法连接到服务器自己的IP地址

enter image description here

如果我使用localhost作为地址,我的图像,然后我可以访问图像,但是,我的设置有两个网站(一个用于开发,一个用于现场)。 localhost只能映射到其中一个实例,所以我只能访问livesite(因为它也默认映射到localhost)。

enter image description here

因此,我需要一种方法来实际连接到我自己的服务器的IP地址(甚至更好用我的实际域名,这将路线通过Apahce的正确的文件夹,这也不起作用因为连接到我自己的IP地址不能在容器内工作)。

我该如何得到这个工作?或|什么可能导致这个问题?

事情我已经尝试:

连接到主机就可以跟自己的IP地址就好了。它从容器内似乎无法做到这一点? (注意当我执行我的命令时,我直接在容器上进行,而不是在主机上)

我验证过的文件也存在于其他机器上,并且图像存在并可以连接到。即使在我自己的机器上的docker可以访问服务器镜像。

这导致我得出结论,如果容器指向主机的IP地址本身,那么它会因超时而失败。

多克尔 - Compose.yml

version: "2" 
services: 
    dblive: 
     image: mysql:5.5.52 
     volumes: 
      - ./db_data_live:/var/lib/mysql 
     restart: always 
     environment: 
      MYSQL_ROOT_PASSWORD: ****** 
      MYSQL_DATABASE: ****** 
      MYSQL_USER: ****** 
      MYSQL_PASSWORD: ****** 

    dbdev: 
     image: mysql:5.5.52 
     volumes: 
      - ./db_data_dev:/var/lib/mysql 
     restart: always 
     environment: 
      MYSQL_ROOT_PASSWORD: ******** 
      MYSQL_DATABASE: ****** 
      MYSQL_USER: ***** 
      MYSQL_PASSWORD: ****** 

    phpmyadmin: 
     depends_on: 
      - dblive 
      - dbdev 
     image: phpmyadmin/phpmyadmin 
     environment: 
      PMA_ARBITRARY : 1 
     restart: always 
     ports: 
      - "8081:80" 

    web: 
     #build: ./ 
     depends_on: 
      - dblive 
      - dbdev 
     image: poolservice/distribution:latest 
     volumes: 
      - ./web:/var/www 
      - ./config/custom.php.ini:/etc/php5/apache2/conf.d/custom.php.ini 
      - ./logs/apache_error.log:/var/log/apache2/error.log 
      - ./logs/apache_access.log:/var/log/apache2/access.log 
      - ./config/apache_default.conf:/etc/apache2/sites-available/000-default.conf 
      - ./config/apache_default-ssl.conf:/etc/apache2/sites-available/default-ssl.conf 
      - ./config/ssl/apache.key:/etc/apache2/ssl/apache.key 
      - ./config/ssl/apache.crt:/etc/apache2/ssl/apache.crt 
      - ./web/public_html/livesite:/app 
      - ./web/public_html/devsite:/appdev 
     restart: always 
     ports: 
      #Standard HTTP Port 
      - "80:80" 
      #Below allows access to local computer from outside ports 
      - "8080:80" 
      #SSH Port 
      - "443:443" 
      #Below allows access to local computer from outside ports 
      - "4443:443" 
+0

请让我知道为什么downvote,我相信我已经展示了一个很好的问题,包括我所做的尝试所需的一切。现在更新以添加更多详细信息。我还包括docker-compose.yml文件作为参考 –

+0

我不确定这个问题是否类似于我的或相同的问题措辞不同? (http://stackoverflow.com/questions/38902786/docker-container-cant-find-domain-on-private-network?rq=1) –

回答

0

好,我找到了答案!

在docker-compose文件中,我为我的域名添加了这些命令以访问本地主机。

extra_hosts: 
      - "domain.com:127.0.0.1" 
      - "dev.domain.tech:127.0.0.1"