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的目錄
dockerfile文件內容
supervisor 配置文件內容
第一段 supervsord 配置軟件自己,使用 nodaemon 參數來運行。nodaemon=true 若是是true,supervisord進程將在前臺運行,默認爲false,也就是後臺以守護進程運行。
下面2段包含咱們要控制的 2 個服務。每一段包含一個服務的目錄和啓動這個服務的命令
/docker/apache目錄內容列表
使用方法
建立 p_w_picpath
# docker build -t centos:supervisord .
查看鏡像
啓動咱們的 supervisor 容器
測試:訪問容器提供的web和ssh服務