我是码头工人的新手。现在我遇到了一些问题,有人可以帮助我吗?
我想用macvlan运行一个容器。
在我的情况下,我将首先运行一个--net=none
的容器。
然后使用ip命令配置网络(或在python中使用netns)。
顺序是:
我的问题是如何首先设置网络。 然后运行应用程序。 顺序是:
也许我可以在文件上编写网络配置脚本并在Dockerfile上的其他内容之前运行它。但是通过这种方式,网络和容器是高度耦合的,我需要每次手动为每个容器编辑它。
那么有更好的方法来处理这种情况吗? thx提前。
答案 0 :(得分:2)
--net=container
的{{1}}参数与另一个容器共享容器的网络名称空间。
因此,您可以首先启动一个带有docker run
的容器和一个用于设置网络的脚本,然后使用--net=none
启动您的应用程序容器以使用该网络堆栈。这将使网络配置和应用程序保持解耦。
另外,如果您还没有,请查看pipework项目。
总的来说,我建议您最好不要查看Weave和Project Calico等现有解决方案。