我試圖在Docker中運行我的hello-world應用程序:前端需要從後端使用REST。在Docker容器中建立hello-world應用程序之間的對話
我跑
docker run -p 1337:1337 --net=bridge me/p-dockerfile-advanced-backend:latest
docker run -p 1338:1338 --net=bridge me/p-dockerfile-advanced-frontend:latest http://127.0.0.1:1337
我能夠使用瀏覽器從主機操作系統連接到他們兩個(我的桌面Windows 10 64):
前端應用程序需要http://127.0.0.1:1337
參數來知道寧靜服務所在的位置。但該應用無法連接到它們。我無法連接。
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS C:\Users\user1> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4b0852253b8a me/p-dockerfile-advanced-frontend:latest "/usr/bin/java -ja..." 24 minutes ago Up 24 minutes 0.0.0.0:1338->1338/tcp laughing_noyce
e73f8a6efa24 me/p-dockerfile-advanced-backend:latest "/usr/bin/java -ja..." 26 minutes ago Up 26 minutes youthful_chandrasekhar
PS C:\Users\user1> docker exec -it 4b0852253b8a bash
[email protected]:/# apt-get install telnet
<...>
[email protected]:/# telnet localhost 1337
Trying 127.0.0.1...
Trying ::1...
telnet: Unable to connect to remote host: Cannot assign requested address
[email protected]:/#
無法連接,但它應該是因爲我指定的兩個容器--net=bridge
和後臺偵聽的端口1337:
[email protected]:/# netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:1337 0.0.0.0:* LISTEN
[email protected]:/#
PS:我花了幾乎一整天試圖使它詢問這裏工作之前。
沒有幫助。現在,我可以從主機操作系統訪問第一個(後端)容器,但從第二個容器訪問它之前不可用。我爲這個問題添加了截圖。 – ieXcept