docker技術剖析--docker supervisor管理進程

http://hongge.blog.51cto.com/web

使用 Supervisor 來管理進程docker

Docker 容器在啓動的時候開啓單個進程,好比,一個 ssh 或者 apache 的 daemon 服務。但咱們常常須要在一個機器上開啓多個服務,這能夠有不少方法,最簡單的就是把多個啓動命令放到一個啓動腳本里面,啓動的時候直接啓動這個腳本。apache

例如:docker run –d 鏡像 /run.shcentos

另外就是安裝進程管理工具。ssh

本節將使用進程管理工具 supervisor 來管理容器中的多個進程。使用 Supervisor 能夠更好的控制、管理、重啓咱們但願運行的進程。ide

Supervisor是一個進程控制系統. 它是一個C/S系統(注意: 其提供WEB接口給用戶查詢和控制), 它容許用戶去監控和控制在類UNIX系統的進程。工具

在這裏咱們演示一下如何同時使用 ssh 和 apache 服務。測試

配置ui

首先建立一個 Dockerfile,內容和各部分的解釋以下。3d

建立一個dockerfile的目錄

clip_p_w_picpath001

dockerfile文件內容

clip_p_w_picpath003

supervisor 配置文件內容

clip_p_w_picpath004

第一段 supervsord 配置軟件自己,使用 nodaemon 參數來運行。nodaemon=true 若是是true,supervisord進程將在前臺運行,默認爲false,也就是後臺以守護進程運行。

下面2段包含咱們要控制的 2 個服務。每一段包含一個服務的目錄和啓動這個服務的命令

/docker/apache目錄內容列表

clip_p_w_picpath005

使用方法

建立 p_w_picpath

# docker build -t centos:supervisord .

clip_p_w_picpath007

查看鏡像

clip_p_w_picpath009

啓動咱們的 supervisor 容器

clip_p_w_picpath011

測試:訪問容器提供的web和ssh服務

http://hongge.blog.51cto.com/

相關文章
相關標籤/搜索