我有一個羣集與兩個節點,一個經理和一個工人。我想在swarm中發佈一個端口,這樣我就可以訪問我的應用程序,並且我想知道我是如何實現這個功能的。碼頭部署將不會發布羣中的端口
version: '2'
services:
server:
build: .
image: my-hub.company.com/application/server:latest
ports:
- "80:80"
這暴露端口80,當我跑碼頭工人,組成了,當我運行一個捆綁的部署
docker deploy my-service
這不會公佈該端口它工作得很好,然而,它只是說, 80/tcp在docker ps中,而不是指向一個端口。也許這是因爲我需要連接一個負載平衡器或者運行一些花哨的命令,或者添加另一個配置層來在多主機羣中實際公開這個端口。
有人可以幫助我瞭解我需要配置/做什麼使這個暴露一個端口。
我最好的情況是,端口80被公開,如果我從不同的主機名訪問它,它會發送給我不同的應用程序。
更新: 看來,如果我運行下面的命令來工作部署
docker service update -p 80:80 my-service_server
docker kill <my-service_server id>
我發現這個倉庫中運行的HA代理申請後,它似乎很大,由碼頭工人自己的支持,但是我似乎無法將這種單獨應用於使用新羣集模式的服務。
https://github.com/docker/dockercloud-haproxy
有一個很好的說明在底部描述網絡應該是什麼樣子:
Internet -> HAProxy -> Service_A -> Container A
但是我無法找到一種方法,通過該泊塢窗服務鏈接服務創建命令,最好現在看起來像一種建立網絡的方式,當我將這個網絡應用於一個服務時,它將在HAProxy中進行檢測。
- Marcus
如果我不希望我的服務將端口暴露爲「已發佈端口」(公開地在羣外),但我確實希望將其暴露給內部(羣內)以供其他服務在羣。 –
然後你不需要做任何事情。只要服務全部在默認網絡上,或者它們全部加入同一個網絡,這就是默認行爲。 – dnephin