昨天踩了個天坑,我有乙個基本的映象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.conf
from centos6-ssh
maintainer [email protected]
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
80cmd ["/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命令去啟動這個指令碼。但是不如supervisord好、不推薦。
Docker container常用的命令
今天操作docker命令,顯然不那麼令人滿意,總結一下常用命令 安裝docker 顯像管理 docker images 列出本地所有映象 docker search 查詢image docker pull docker push 上傳image docker rmi 刪除image 容器管理 doc...
docker container 動態修改記憶體限制
原文 docker動態修改配置用docker update,用法 docker update h flag shorthand h has been deprecated,please use help usage docker update options container container....
連線 Docker Container 的幾種方式
經過熟悉之後,在 docker 裡安裝了乙個 ubuntu 準備學習使用。然後遇到了一些問題 使用 docker run d ubuntu 之後,container在執行之後馬上退出了。原因很簡單,在docker run 之後沒有命令引數,新增 bash 就可以了 docker run d ubun...