docker-9 supervisord 参考docker从入门到实战

参考docker从入门到实战

使用 Supervisor 来管理进程

Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务。但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命令放到一个启动脚本里面,启动的时候直接启动这个脚本,另外就是安装进程管理工具。

本小节将使用进程管理工具 supervisor 来管理容器中的多个进程。使用 Supervisor 可以更好的控制、管理、重启我们希望运行的进程。在这里我们演示一下如何同时使用 ssh 和 apache 服务。

配置

首先创建一个 Dockerfile,内容和各部分的解释如下。

FROM ubuntu
MAINTAINER [email protected]
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get upgrade -y

#安装 ssh、apache 和 supervisor

RUN apt-get install -y --force-yes perl-base=5.14.2-6ubuntu2

RUN apt-get install -y apache2.2-common

RUN apt-get install -y openssh-server apache2 supervisor

RUN mkdir -p /var/run/sshd

RUN mkdir -p /var/log/supervisor

#这里安装 3 个软件,还创建了 2 个 ssh 和 supervisor 服务正常运行所需要的目录

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

#添加 supervisord 的配置文件,并复制配置文件到对应目录下面

EXPOSE 22 80

CMD ["/usr/bin/supervisord"]

#这里我们映射了 22 和 80 端口,使用 supervisord 的可执行路径启动服务。

supervisor配置文件内容

[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D

[program:apache2]
command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"

配置文件包含目录和进程,第一段 supervsord 配置软件本身,使用 nodaemon 参数来运行。第二段包含要控制的 2 个服务。每一段包含一个服务的目录和启动这个服务的命令。

使用方法

创建镜像。

$ sudo docker build -t test/supervisord .
启动 supervisor 容器。

$ sudo docker run -p 22 -p 80 -t -i test/supervisord

使用 docker run 来启动我们创建的容器。使用多个 -p 来映射多个端口,这样我们就能同时访问 ssh 和 apache 服务了。

可以使用这个方法创建一个只有 ssh 服务的基础镜像,之后创建镜像可以使用这个镜像为基础来创建

时间: 2024-09-28 17:08:10

docker-9 supervisord 参考docker从入门到实战的相关文章

《Docker技术入门与实战》pdf

下载地址:网盘下载 内容简介  · · · · · · [编辑推荐] <Docker技术入门与实战>是中国首部docker著作,一线Docker先驱实战经验结晶,来自IBM和新浪等多位技术专家联袂推荐! <Docker技术入门与实战>结合企业生产环境,深入浅出地剖析 Docker 的核心概念.应用技巧.实现原理以及生态环境,为解决各类问题提供了有价值的参考. [内容简介] 在云计算时代,开发者将应用转移到云上已经解决了硬件管理的问题,然而软件配置和管理相关的问题依然存在.Docke

docker容器从入门到实战0826

##docker容器安装和配置### #docker的git-hub网站(账号rshare,密rshare520):https://github.com/login #docker官网hub仓库(账号flyer520,密码rhsare520):https://hub.docker.com #docker官网文档和镜像:https://docs.docker.com/samples/centos/ #docker官网的容器网络配置:https://docs.docker.com/engine/us

docker容器从入门到实战0826(笔记整理)

##docker容器安装和配置### #docker的git-hub网站(账号rshare,密rshare520):https://github.com/login #docker官网hub仓库(账号flyer520,密码rhsare520):https://hub.docker.com #docker官网文档和镜像:https://docs.docker.com/samples/centos/ #docker官网的容器网络配置:https://docs.docker.com/engine/us

Docker入门与实战系列:热点问题

Docker入门与实战--<Docker ABC>电子书 https://github.com/gudaoxuri/Docker_ABC 11. 热点问题 11.1. 容器如何使用静态IP 默认情况下Docker容器的IP是动态分配的,要使用静态IP时我们会思考一下: 为什么需要静态IP?如果是为了两个容器间通信可以 使用--link 指定-h来指定hostname并指定-dns到宿主机 让容器开放上层服务 如果这样都满足不了您的要求那么可以参考 http://huataihuang.gith

《Docker技术入门与实战第3版2018版》高清中文PDF下载

<Docker技术入门与实战第3版2018版>高清中文PDF下载资料简介:本书从Docker基本原理开始,深入浅出地讲解Docker的构建与操作,内容系统全面,可帮助开发人员.运维人员快速部署Docker应用.本书分为四大部分:基础入门.实战案例.进阶技能.开源项目,*部分(第1-8章)介绍Docker与虚拟化技术的基本概念,包括安装.镜像.容器.仓库.数据卷.端口映射等:第二部分(第9-16章)通过案例介绍Docker的应用方法,包括与各种操作系统平台.SSH服务的镜像.Web服务器与应用.

赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】

最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 (作者) http://www.amazon.cn/Docker技术入门与实战-杨保华-戴王剑-曹亚仑/dp/B00SMJ0VFA/ref=sr_1_2?s=digital-text&ie=UTF8&qid=1435217727&sr=1-2&keywords=docker

[52ABP实战课程系列]Docker&amp;Ubuntu从入门到实战开课啦~

任何的课程都逃不开理论的支持 久等了各位,在Asp.NET Core2.0 项目实战入门视频课程结束后,根据发起的投票信息.Docker 排在首位.按照结果,我们开始进行Docker视频课程的录制. 在课程开始之前,我给大家准备了课件信息.和一些需要提前掌握的理论知识和概念. 适合您吗? 您如果想了解Docker,想利用Docker进行开发,那么本系列课程就比较适合你了. 我会讲解如何Docker和Ubuntu实战练习Docker和管理该程序的整个生命周期. 大纲 Docker的介绍 Ubunt

Docker从入门到实战(二)

一步一步走,写小白都能看懂的文章,将持续更新中,敬请期待! Docker从入门到实战(二) 一:什么是docker Docker是一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到主流的Linux.macOS.Windows机器上,实现虚拟化. Docker用Go语言写成,是一个重新定义了程序开发测试.交付和部署过程的开放平台. 二:Docker与虚拟机的区别 虚拟机和Docker最明显的差别是虚拟机需要安装操作系统(安装Guest OS)才能执行应用程序

Docker小白从零入门到实战系列【二】

1.安装好Centos 7 2.关闭SELINUX sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/configsetenforce 0getenforce 3.配置阿里云镜像 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://8r0xukw1