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/启动/重新启动您的容器并将其分配给您的FooAppNet
networking。
-d
标志以独立模式运行容器,并防止在启动容器时将日志输出打印到terminal窗口。 你仍然可以通过docker logs -f ...
获得他们的日志docker logs -f ...
像任何其他容器。
然后你可以使用docker-compose down
和docker-compose restart
等来控制集合的生命周期。 另外, 使用variables可以使定义文件变得更加灵活。
请参阅以下有关使用由docker撰写自动启动的networking的评论。
TL; DR – 请参阅https://docs.docker.com/compose/networking/的解决scheme的开始部分。 它会引导您完成整个必要的configuration。 很好地工作,并需要掌握各种docker-compose
命令行选项,以生产它。