Docker Container同时启动多服务
转载请注明来自:http://blog.csdn.net/wsscy2004
昨天踩了个天坑,我有一个基本的镜像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
supervisor是linux下监控进程的工具,通过supervisor启动所有服务。
创建Dockerfile:
# use this image to run multiple service
# add service in supervisord.conf
FROM centos6-ssh
MAINTAINER edwardsbean@gmail.com
RUN yum install -y supervisor
RUN mkdir -p /var/run/sshd
RUN mkdir -p /var/log/supervisor
ADD supervisord.conf /etc/supervisord.conf
# expose your port to host
EXPOSE 22 80
CMD ["/usr/bin/supervisord"]
创建supervisord.conf:
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
#add another service#[program:hello]#command=/bin/bash -c "/root/test.sh"
制作成image:
docker build -t supervisord .
以后就可以通过supervisord.conf
添加服务了
CMD启动脚本
通过将所有要启动的服务封装成一个脚本,利用CMD命令去启动这个脚本。但是不如supervisord好、不推荐。
相关推荐
本文介绍了Docker如何进入启动容器,分享给大家,具体如下: 在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。 这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的...
删除镜像, 可以同时删除多个 删除所有 docker rmi $(docker images -q) docker images -q 获取所有镜像id 容器相关命令 命令提示 docker container --help 创建容器(自动启动) docker ...
废话不多说,直接上干货 进入正题: 一、Docker—安装部署 注意:Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上 ...4、启动docker和查看docker的状态 systemctl start docker——
docker rename [CONTAINER_NAME] [NEW_CONTAINER_NAME] 在新容器中运行命令 docker run [IMAGE] [COMMAND] 退出后移除容器 docker run –rm [IMAGE] 启动一个容器并保持运行 docker run -td [IMAGE] 启动一个...
Docker Container基础用法启动镜像创建出一个运行状态的容器容器操作常见命令运行容器查看容器信息查看容器运行产生的输出暂停容器恢复容器停止容器重新启动容器删除容器(删除前要stop)查看docker里所有启动中的...
在上文Docker源码分析之——Docker Daemon的启动中,介绍了...container操作的请求的载体,在于DockerClient。本文从Docker源码的角度,分析Docker Client启动与执行请求的过程。DockerClient启动的流程与DockerDae
(三):Docker Daemon启动 (四):Docker Daemon之NewDaemon实现 (五):Docker Server的创建 (六):Docker Daemon网络 (七):Docker Container网络 (上) (八):Docker Container网络(下) (九):...
基于docker的分布式爬虫服务特性多机多 IP,充分利用 IP 资源服务自动发现和注册(基于 etcd 和 registrator)负载均衡服务端客户端通信基于 gRPC,支持多种编程语言的客户端可设置抓取超时支持 GET、HEAD、POST ...
文章目录All Docker Container Commands(必看):基础命令:①、列出容器 —— docker ps②、创建容器 —— docker create③、启动容器 —— docker start④、创建并启动容器 —— docker run (常用)⑤、进入容器...
使用 Docker 和这个叫 dock 的小工具,你可以短时间内启动所有开发环境所需要的服务。 典型使用方法: $ dock redis jenkins mongodb Starting redis (using /Users/ben/.dock-formulas/formulas/redis) ...
执行命令:docker run –name centos8 -d centos /bin/bash,通过docker ps查看正在运行中容器,找不到centos8。 通过docker ps -a查看发现,centos8容器已经处于停止状态了 [root@MiWiFi-R4A-srv server]$ docker ...
● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Drop-In: /etc/systemd/system/docker.service.d └─...
一、Docker启动异常表现: 1.状态反复restaring,用命令查看 $docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 21c09be88c11 docker.xxxx....
Dockle - 安全的Container Image Linter,帮助构建最佳实践Docker镜像,易于启动
更方便配置的能利用nvidia GPU的docker. ...所以现在的nvidia-docker的解决方案是在image里不安装nvidia driver,而是在启动container时通过挂载driver文件或者指定特定的硬件的方式来启动container。
泊坞窗PT Magic PTMagic插件的Docker Container,用于获利预告片。版本2.0.3先决条件正在运行的Profittrailer(我使用自己的Docker容器rafffael / profit-trailer的fork) 通过docker卷/ mnt / profittrailer的完全...
容器是 Docker 又一核心概念。 ...因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 新建并启动 所需要的命令主要为 docker run 这跟在本地直接执行 /bin/echo ‘hell
下面看下重启docker服务应用自启停命令,具体内容如下所述: #重启docker服务应用,不自动开启docker容器 docker update --restart=no (docker容器CONTAINER ID 或 docekr容器NAMES) #重启docker服务应用,自动开启...
docker container run \ --publish 9092:9082 \ --detach \ --name h2 \ nemerosa/h2 然后可以使用以下JDBC URL访问数据库: jdbc:h2:tcp://localhost/yourdb (假设您的Docker主机也是localhost ) 数据量 ...
> 创建docker启动文件(docker.services)放入/usr/lib/systemd/system/目录 ``` [Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com After=network.target docker....