发布者认证信息(营业执照和身份证)未完善,请登录后完善信息登录
 总算明白云计算核心技术Docker教程:Docker在容器中运行多个服务 - 三农网
Hi,你好,欢迎来到三农网
  • 产品
  • 求购
  • 公司
  • 展会
  • 招商
  • 资讯
当前位置: 首页 » 资讯 » 吃在农村 找商家、找信息优选VIP,安全更可靠!
总算明白云计算核心技术Docker教程:Docker在容器中运行多个服务
发布日期:2022-01-10 10:09:26  浏览次数:12

容器的主要运行过程是ENTRYPOINT和或CMD末尾Dockerfile。通常建议您通过每个容器使用一项服务来分离关注区域。该服务可以分叉到多个进程中(例如,Apache Web服务器启动多个工作进程)。可以有多个进程,但是要从Docker中获得最大收益,请避免一个容器负责整个应用程序的多个方面。您可以使用用户定义的网络和共享卷连接多个容器。

容器的主要过程负责管理它启动的所有过程。在某些情况下,主流程设计不当,并且在容器退出时无法优雅地处理“收获”(停止)子流程。如果您的进程属于此类别,则可以--init在运行容器时使用该选项。该--init标志将一个微小的init进程作为主要进程插入到容器中,并在容器退出时处理所有进程的收割。用这种方式处理此类过程优于使用成熟的初始化过程(如sysvinit,upstart)或systemd处理容器中的过程生命周期。

如果您需要在一个容器中运行多个服务,则可以通过几种不同的方式来完成此操作。

将所有命令放入包装器脚本中,其中包含测试和调试信息。以您的身份运行包装脚本CMD。这是一个非常幼稚的例子。首先,包装脚本:

接下来,Dockerfile:

FROM ubuntu:latest

COPY my_first_process my_first_process

COPY my_second_process my_second_process

COPY

CMD ./

如果您有一个需要首先启动并保持运行的主要流程,但是您暂时需要运行其他一些流程(可能与该主要流程进行交互),则可以使用bash的作业控制来简化这一过程。首先,包装脚本:

FROM ubuntu:latest

COPY my_main_process my_main_process

COPY my_helper_process my_helper_process

COPY

CMD ./

使用类似的流程管理器supervisord。这是一种中等重量的方法,需要您将supervisord映像及其配置打包(或将映像基于包括在内的映像supervisord)及其管理的不同应用程序一起打包。然后,您将启动supervisord,它会为您管理流程。下面是使用这种方法,它假定预先编写的一个例子Dockerfile ,my_first_process和my_second_process文件都存在于相同的目录中Dockerfile。

FROM ubuntu:latest

RUN apt-get update && apt-get install -y supervisor

RUN mkdir -p /var/log/supervisor

COPY /etc/supervisor//

COPY my_first_process my_first_process

COPY my_second_process my_second_process

CMD ["/usr/bin/supervisord"]

VIP企业最新发布
全站最新发布
最新VIP企业
背景开启

三农网是一个开放的平台,信息全部为用户自行注册发布!并不代表本网赞同其观点或证实其内容的真实性,需用户自行承担信息的真实性,图片及其他资源的版权责任! 本站不承担此类作品侵权行为的直接责任及连带责任。

如若本网有任何内容侵犯您的权益,请联系 QQ: 1130861724

网站首页 | 实时热点 | 侵权删除 | 付款方式 | 联系方式 | 法律责任 | 网站地图 ©2022 zxb2b.com 三农网,中国大型农产品交易电商平台 鄂公网安备42018502006996 SITEMAPS | 鄂ICP备14015623号-20

返回顶部