2017-04-16 66 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"