使用1.9,是否有辦法直接啓動具有兩個或多個網絡接口的容器?啓動具有多個網絡接口的容器
您可以在容器以「docker network connect」啓動後執行此操作,但這意味着該進程已在運行,並且可能會錯過創建新進程。
使用1.9,是否有辦法直接啓動具有兩個或多個網絡接口的容器?啓動具有多個網絡接口的容器
您可以在容器以「docker network connect」啓動後執行此操作,但這意味着該進程已在運行,並且可能會錯過創建新進程。
不,這是不可能的。該文檔還顯示必要的命令行選項--net
只接受一個單一的網絡名稱:http://docs.docker.com/engine/reference/run/#network-settings
也請記住,多克1.9不斷更新/etc/hosts
文件的容器內,使正在運行的進程不能依賴於初始該文件的狀態。最好的方法是通過手動讀取/etc/hosts
文件或查詢dns服務器來讓流程知道更新。這樣,當第二個網絡連接時,您不會遇到任何問題。
@gesellix回答說,目前不可能。
下可以找到 https://github.com/docker/docker/issues/17750
這個問題有這方面的一些懸而未決的改進。 正如我從討論中看到的 - 當前的想法是創建容器(使用docker create),連接網絡(docker network connect),然後啓動(docker start)。
可以在https://github.com/docker/docker/pull/17796
UPD的評論檢查的理由是:#17750被關閉,將在1.10
可這個問題是頂部做碼頭工人方面和多個網絡接口的搜索。雖然不是問題中的必需版本,但我在此留下一些信息:
使用Docker 1.12+可以將多個網絡接口添加到泊塢窗容器,但需要先創建容器,然後將其連接到
$ docker create --network=network1 --name container_name containerimage:latest
$ docker network connect network2 container_name
$ docker start container_name
這是需要先創建網絡:
$ docker network create --driver=bridge network1 --subnet=172.19.0.0/24
$ docker network create --driver=bridge network2 --subnet=172.19.1.0/24
另外,還可以啓動容器通過使用附接dockerhost網絡接口的第二(和序列)網絡的NIC啓動容器之前--networ k =碼頭運行中的主機參數:
$ docker run --net=host containerimage:latest
如果容器已啓動,它仍連接到新網絡並保持原始網絡可訪問。碼頭版本:1.13.1 – zw963
我可以肯定。我嘗試過'docker run -it --network bridge --network mynet/bin/bash' - 沒有運氣,'無效的參考格式'。還嘗試了兩個參數'... --network bridge mynet ...'但是Docker認爲'mynet'是我想要使用的映像。 –