启动具有多个networking接口的容器

有了1.9,有没有办法直接用两个或两个以上的networking接口启动容器?

你可以在容器启动后用“docker network connect”来完成,但这意味着这个进程已经在运行,可能会错过创build新进程。

这个问题是顶部searchdocker和多个networking接口。 虽然不是问题中的所需版本,我在这里留下一些信息:

使用Docker 1.12+可以将多个networking接口添加到Docker容器,但是需要先创build容器,然后在启动容器之前连接第二个(和后续的)networkingNIC:

$ docker create --network=network1 --name container_name containerimage:latest $ docker network connect network2 container_name $ docker start container_name 

首先需要创buildnetworking:

 $ docker network create --driver=bridge network1 --subnet=172.19.0.0/24 $ docker network create --driver=bridge network2 --subnet=172.19.1.0/24 

另外,你可以通过在docker run中使用–network = host参数启动附加dockerhostnetworking接口的容器:

 $ docker run --net=host containerimage:latest 

正如@gesellix所回答的,目前这是不可能的。

你可以在https://github.com/docker/docker/issues/17750find这个问题

这方面有一些待定的改进。 正如我从讨论中看到的 – 目前的想法是创build容器(与docker创build),附加networking(dockernetworking连接),然后启动(docker启动)。

你可以在https://github.com/docker/docker/pull/17796的评论中检查推理

UPD: #17750已closures,将在1.10中可用

不,这是不可能的。 该文档还显示必要的命令行选项--net只接受一个networking名称: http : --net

请记住,Docker 1.9会不断更新容器中的/etc/hosts文件,以便正在运行的进程不能依赖于该文件的初始状态。 最好的方法是通过手动读取/etc/hosts文件或查询dns服务器来使stream程知道更新。 这样,当第二个networking连接时,你不会有问题。