簡體   English   中英

無法從群集和主機內部與Docker容器連接

[英]Cannot connect with Docker container from inside a swarm and the host machine

我正在組成兩個容器,一個包含Web服務,一個包含數據庫。
這是我的撰寫文件:

version: '3.3'
services:
  web:
    image: microsoft/aspnetcore:1.1
    container_name: web
    ports:
    - 5555:80
    links:
    - db
  db:
    image: microsoft/mssql-server-linux:rc1
    container_name: db
    ports:
    - 1533:1433
    environment:
    - "ACCEPT_EULA=Y"
    - "MSSQL_SA_PASSWORD=MyAdminPwd2017"
    - "MSSQL_PID=Developer"

因此,從web服務中運行的asp.net核心應用程序中,我可以使用db作為主機名訪問db的數據庫。 但是db在主機上不可見(我有默認的橋接網絡)。 如果我檢查正在運行的db容器並找到它的ip地址,則可以從主機訪問數據庫,然后可以連接到<ip>,1533

事實是, web容器和主機都使用存儲用於訪問數據庫的憑據的文件。 因此,我需要一種命名db的方法,以便可以從兩個世界訪問(位於主機內部和外部)

有辦法實現嗎? 我嘗試在docker-compose文件中定義一個主機網絡,並且兩種服務都使用該網絡,但是我收到一條消息,說只能定義一個主機網絡。

編輯:試圖改善問題的標題,但我仍然不相信,歡迎改進

好的,所以,要回答我自己的問題,至少在今天,我想要的東西是不可能的。

有人寫了一篇很好的文章,說明為什么我無法實現自己想要的。 話雖如此,它在Windows容器中是可行的,但可能是暫時的“限制”。

鏈接后: https://derickbailey.com/2016/08/29/so-youre-saying-docker-isnt-a-virtual-machine/並鏈接到泊塢窗論壇: HTTPS://forums.docker。 COM / T /訪問dockerized服務-通過最集裝箱-IP地址/ 21151

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM