Docker 学习之 容器中运行多个服务
来源:互联网 发布:程序员培训班排名 编辑:程序博客网 时间:2024/06/05 18:53
Docker 容器中运行多个服务
昨天踩了个天坑,我有一个基本的镜像centos6.5+ssh,是通过Dockerfile build的,利用CMD命令启动ssh。
通过centos6.5+ssh镜像,我想build一个rabbitmq镜像,Dockerfile中CMD启动rabbitmq服务。虽然我知道Dockerfile中的CMD只能有一个,但没想到创建另一个image,也会继承FROM image的CMD.
利用Docker的命令inspect可以看到,CMD已经被替换了。
"Cmd": [ /usr/bin/supervisord"],
下面进入正题,如何同时启动多个服务,主要有如下方式
supervisor是Linux下监控进程的工具,通过supervisor启动所有服务。
- 创建Dockerfile:
# use this image to run multiple service# add service in supervisord.confFROM centos6-sshMAINTAINER edwardsbean@gmail.comRUN yum install -y supervisorRUN mkdir -p /var/run/sshdRUN mkdir -p /var/log/supervisorADD supervisord.conf /etc/supervisord.conf# expose your port to hostEXPOSE 22 80CMD ["/usr/bin/supervisord"]
- 创建supervisord.conf
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
构建镜像image:
docker build -t supervisord .
这样就可以通过supervisord.conf来添加不通的服务
CMD启动脚本
通过将所有要启动的服务封装成一个脚本,利用CMD命令去启动这个脚本。但是不如supervisord好、不推荐。
【注意】使用容器的更高层次的目的是实现分布式架构,实现microservice的模式来设计架构,这种一容器多服务的方式个人不做推荐。
阅读全文
0 0
- Docker 学习之 容器中运行多个服务
- 运行第一个Docker容器
- 运行第一个Docker容器
- docker学习之容器
- Docker中运行mysql容器
- docker学习2|在容器中部署nginx并保存、运行容器
- docker学习之容器续
- Docker学习笔记三:运行容器
- Docker学习笔记三:运行容器
- 在docker容器中运行zookeeper
- 在docker容器中运行hello world!
- Docker容器中运行一个Apache服务器
- Docker整理之Docker运行容器相关(二)
- docker中nginx容器和php容器混合运行
- 迈出使用Docker的第一步,学习第一个Docker容器
- [Docker]2.运行docker容器
- 11 - Dockerfile之容器中运行MyEclipse搭建的JavaWeb项目(Docker系列)
- 在docker容器中运行或一键运行GourdScanV2
- 【hdu 1222】Wolf and Rabbit
- 海量数据处理经典实例
- python函数式编程(三)装饰器、偏函数
- 栈和队列练习题
- MySql-两阶段加锁协议
- Docker 学习之 容器中运行多个服务
- qt creator修改程序编码(解决中文乱码问题)的方法
- Python入门1_数字&&表达式
- 数人云|史上最全,35个平台、框架、数据库细说什么是Serverless
- eclipse简单的功能介绍以及debuge模式断点调试
- 酒客项目日志20170806
- 讨论构造拷贝构造的N中调用情况的问题
- (三分 两次)Line belt -- HDOJ
- 利用FFmpeg将Jpeg图片转为任意视频容器格式