小白爱docker

在Dockerfile中设置默认启动的服务

2018-07-01  本文已影响0人  wangxiaoxi

在Dockerfile中除了CMD和ENTRYPOINT, 其他所有的指令均只存活在构建docker image的过程中。

那么在启动container时,启动服务或者执行指令和脚本的任务就需要由CMD和ENTRYPOINT来完成。

而Docker container需要一个进程一直处于RUNNING状态,否则container就会退出。

所以,希望一个服务作为container启动时的默认且唯一的服务,并和container一直存在,就需要满足:

1. CMD和ENTRYPOINT启动该服务

2.一个前置的一直存在的进程

则常见的用法有:

1)启动目标服务,并追加non-end命令

CMD service mysql start && tail -F /var/log/mysql/error.log

2)使用前置服务

CMD /usr/bin/mysqld_safe

3)启动目标服务,并追加/bin/bash命令

ENTRYPOINT/CMD service mysql start && /bin/bash

4) 脚本启动程序,尤其是步骤较多的时候

CMD /start.sh

上一篇 下一篇

猜你喜欢

热点阅读