2017-04-03 110 views
0

因此,自從我一直在研究碼頭和一切可用的選項以來。我有一個帶有3個額外靜態IP的VPS。如何將外部IP添加到碼頭集裝箱?

這個想法是將每個容器連接到不同的IP或者可能添加3個網絡與不同的容器,並讓每個網絡連接到不同的IP。我前幾天在互聯網上看到一些教程,但我沒有保存它們,我找不到它們了。

IP是靜態的,由我們的ISP(ovh)提供。

到目前爲止,我試圖連接到使用子網IP XX.XX.XX.XX/32(只有1個IP),但它給了我錯誤 謝謝

PS。我是新手,在泊塢窗

- 編輯 -

just tried this code 
docker network create \ 
    --driver=bridge \ 
    --subnet=AAA.BBB.CCC.DDD/32 \ 
    --ip-range=AAA.BBB.CCC.DDD/32 \ 
    --gateway=AAA.BBB.CCC.DDD \ 
    br0 

和我得到的電流誤差

Error response from daemon: failed to allocate gateway (AAA.BBB.CCC.DDD): No available addresses on this pool 

而且AAA.BBB.CCC.DDD代表的公網IP來自ISP

+0

我相信你需要將這些IP地址分配給主機,然後用IPtables轉發端口。 雖然我不完全確定如何將IP地址綁定到容器, –

+0

https://docs.docker.com/engine/userguide/networking/work-with-networks/#create-networks – Rao

+0

@rao但是這個選項olis與一個swarm主機(多個服務器)一起使用,在這種情況下,我kust想要將容器或網絡連接到由我的ISP提供的外部IP –

回答

0

一個IP地址解析到某個地方(如果你的DNS服務器能夠解決它) 在這種情況下,我假設靜態IP的解析到山姆Ë機:嘗試通過運行

Host xxx.xxx.xxx 

照會確認:使用IPv4地址,所以省略斜線 如果返回相同的主機名,我的假設是正確的。

在這個主機上,每個容器必須公開一個端口,並且它們不能使用同一個端口。 (每個應用程序一個端口)

所以你要麼導航到一個IP後跟一個冒號和一個端口號......或者你可以省略端口,並有一個像Apache或Nginx的Web服務器在默認端口(80),並根據收到的請求配置路由。 (然後你將它路由到單獨暴露的端口,但這種方式客戶端不必知道這些)

希望這會給你一些指針來調查你的目標的選項。

+0

謝謝你的建議,我明天早上在工作時會看一下,我會報告一個反饋 –

+0

你可以看看我的主要話題嗎?我做了一個編輯 –

+0

我沒有Docker網絡的經驗。但是,據我所知,它們對創建本地網絡很有用。在這種情況下,你需要一些不同的東西:將每個IP地址連接到另一個碼頭集裝箱。 嘗試運行我提到的主機命令並報告結果。 您應該期望得到類似如下的結果: 'XXX.XXX.XX.XX.in-addr。域名指針' 如果主機名對於每個IP地址都是相同的,那麼這意味着它們已經被配置爲映射到相同的機器。在這種情況下:安裝nginx或apache。否則我幫不了你 –