2016-08-05 68 views
0

我希望能夠在綁定到內部10.10.0.0/22子網的同時運行帶有參數-P的容器。在內部IP的隨機端口上公開容器

默認情況下,一次做這樣的事情:

docker run -d -P --name=nginx nginx 

它會是這個樣子:

CONTAINER ID  IMAGE   COMMAND     CREATED    STATUS    PORTS      NAMES 
dbb556c99c81  nginx   "/usr/sbin/nginx"  2 minutes ago  Up 2 minutes  0.0.0.0:32773->80/tcp  nginx 

揭露它0.0.0.0/0有沒有辦法讓這個我的內部IP?

+1

你是什麼意思你的內部IP? 「0.0.0.0」是docker界面。你可以通過主機接口的內部IP訪問端口'32773' –

+0

呃,我特別不想這樣做。只需將其保持在內部而不必執行防火牆規則並且不會將其暴露給外部世界。 – Kaiwa

回答

2

-p選擇各個端口時,可以手動綁定到特定接口,例如:

$ docker run -d -p 127.0.0.1:8080:80/tcp --name test-nginx nginx 
2e07ebc61bcdc82a187a27eabca10211a4c9ac09d66e516e5c176d7282cffe2b 

$ docker ps 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS        NAMES 
2e07ebc61bcd  nginx    "nginx -g 'daemon off" 5 seconds ago  Up 2 seconds  443/tcp, 127.0.0.1:8080->80/tcp test-nginx 

隨着-P,它使用在守護進程(dockerddocker daemon)配置的接口。默認情況下,這是0.0.0.0,但可以將其更改爲任何其他IP:

$ dockerd --help 
# ... 
--ip=0.0.0.0    Default IP when binding container ports 

注意0.0.0.0是偵聽所有接口,所以要指定一個特定的IP的唯一原因就是來鎖定容器,而不是爲你的環境打開它。

+0

這正是我需要的!我希望容器在仍然使用隨機端口的情況下不可用於外部世界。 – Kaiwa

相關問題