發送郵件,我可以從主機發送郵件,使用郵件:碼頭工人。從主機
mail -s "Hooray" [email protected] < /dev/null
但我想使用主機服務器從搬運工集裝箱發送郵件。碼頭工人說,「端口已在使用」當我嘗試它在運行命令映射到25端口:
run -ti -p 25:25 container
我怎樣才能達到目標? 主機是Centos,碼頭使用Ubuntu。
發送郵件,我可以從主機發送郵件,使用郵件:碼頭工人。從主機
mail -s "Hooray" [email protected] < /dev/null
但我想使用主機服務器從搬運工集裝箱發送郵件。碼頭工人說,「端口已在使用」當我嘗試它在運行命令映射到25端口:
run -ti -p 25:25 container
我怎樣才能達到目標? 主機是Centos,碼頭使用Ubuntu。
使用端口轉發與碼頭集裝箱將容器的端口轉發給主機。所以你有郵件服務器上的主機上已經使用了25端口。在這裏,你需要從主機端口轉發到容器:
Forward host port to docker container
最簡單的方法是使用--net=host
選項:
docker run --rm -it --net=host container mail -s "Hooray" [email protected] < /dev/null
也許有沒有辦法做到這一點--net = host?我也在網絡中使用其他幾個容器。 – Snobby
不能與多個應用程序在同一端口上偵聽。所以,如果已經有主機偵聽端口25上的應用程序,你可以停止該應用程序,或配置您的容器聽不同的主機端口,如:
run -ti -p 2525:25 container
引起端口從映射主機端口2525到容器端口25.如果您不需要從容器接收郵件,則可以完全刪除此端口映射,這仍然允許您發送出站郵件。
如果你不知道什麼是使用主機上的端口25,你可以用netstat命令看這件事:如果你想看到的過程
sudo netstat -lntp
注意,sudo的,要求正在港口上聆聽。
嗨。你找到了一些解決方案嗎? – spiil
@spiil你好,不,我放棄了:)我設法直接從Gmail郵件服務器發送電子郵件 – Snobby
哦。感謝您的回覆:) – spiil