管理一组没有汗水的泊坞容器

时间:2016-02-29 14:59:09

标签: docker docker-compose

我正在使用bash脚本来启动虚拟网络,其上有两个docker容器。这感觉史前。是否有一些工具可以上下旋转这样的整体&显示其当前状态,还是一个人必须自己处理?

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

E.g。这里是一个bash脚本将用于定义/启动两个相互关联的容器的应用程序,不用说这个脚本无法帮助管理它的生命周期,而不仅仅是启动它一次。

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,并且其包含的应用程序在其配置文件中将其硬连线,以便按名称使用component2的服务(码头工人网络实践依赖于docker networks' internal DNS)。

2 个答案:

答案 0 :(得分:4)

对于您给出的示例,以下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 up -d,则会创建/启动/重新启动您的容器并将其分配到您的FooAppNet网络。

-d标志以分离模式运行容器,并在启动容器时阻止将日志记录输出打印到终端窗口。您仍然可以通过docker logs -f ...获取他们的日志,就像使用任何其他容器一样。

然后,您可以使用docker-compose downdocker-compose restart等来控制整体的生命周期。另外,using variables可以使定义文件更具灵活性。

请参阅以下评论中有关使用由docker撰写自动旋转的网络的信息。

答案 1 :(得分:0)

TL; DR - 请参阅https://docs.docker.com/compose/networking/的开头部分以获取解决方案。它将引导您完成整个必要的配置。很好地工作,需要掌握各种 use bd_hospital; create table personas2 ( dni int PRIMARY KEY, apellidos varchar(50), funcion varchar(30)) select dni, apellidos, funcion from personas where cod_hospital=4; 命令行选项才能提高效率。