pipe理一组没有汗水的docker集装箱

我正在使用一个bash脚本来启动一个带有两个docker容器的虚拟networking。 这感觉是史前的。 有没有一种工具可以将这样一个集合体上下旋转并显示其当前状态,还是必须自己照顾?

docker-compose情况下,docker文档中docker-compose是自包含的还是绑定到swarm中是不清楚的,并且组合定义文件的权威示例,以及启动和停止集合的命令将会非常有帮助。

例如,这里是一个bash脚本用来定义/启动两个相互关联的容器的应用程序,不用说,这个脚本不仅仅帮助pipe理其生命周期,而是一次启动它。

 docker network create --driver bridge FooAppNet docker run --rm --net=FooAppNet --name=component1 -p 9000:9000 component1-image docker run --rm --net=FooAppNet --name=component2 component2-image 

同样在这个例子中,容器component1将端口9000暴露给主机,并且其包含的应用程序已经在其configuration文件中硬连线,以便通过其名称使用component2的服务(遵循依靠泊坞networking的内部DNS的常见泊坞窗networking实践) 。

对于你给出的例子,下面的Docker Compose文件会给你你想要的:

 component1: image: component1-image net: FooAppNet container_name: component1 ports: - "9000:9000" component2: image: component2-image net: FooAppNet container_name: component2 

如果将其存储在docker-compose.yml文件中,然后运行docker-compose.yml docker-compose up -d ,则会创build/启动/重新启动您的容器并将其分配给您的FooAppNetnetworking。

-d标志以独立模式运行容器,并防止在启动容器时将日志输出打印到terminal窗口。 你仍然可以通过docker logs -f ...获得他们的日志docker logs -f ...像任何其他容器。

然后你可以使用docker-compose downdocker-compose restart等来控制集合的生命周期。 另外, 使用variables可以使定义文件变得更加灵活。

请参阅以下有关使用由docker撰写自动启动的networking的评论。

TL; DR – 请参阅https://docs.docker.com/compose/networking/的解决scheme的开始部分。 它会引导您完成整个必要的configuration。 很好地工作,并需要掌握各种docker-compose命令行选项,以生产它。