我有一个在容器中安装MySQL服务器的Dockerfile,然后我像这样启动它:
sudo docker run -t -i 09d18b9a12be /bin/bash
但是MySQL服务不会自动启动,我必须手动运行(从容器中):
service mysql start
如何在运行docker容器时自动启动MySQL服务?
发布于 2015-08-24 17:40:36
在Dockerfile
中,在最后一行添加
ENTRYPOINT service ssh restart && bash
对我来说很管用
这就是结果:
root@ubuntu:/home/vagrant/docker/add# docker run -i -t ubuntu
* Restarting OpenBSD Secure Shell server sshd [ OK ]
root@dccc354e422e:~# service ssh status
* sshd is running
发布于 2016-12-15 03:35:42
很简单!在dockerfile的末尾添加:
ENTRYPOINT service mysql start && /bin/bash
发布于 2016-11-23 23:48:25
还有另一种方法,我发现它更具可读性。
假设你想要启动rabbitmq和mongodb,当你运行它的时候,你的CMD
会是这样的:
CMD /etc/init.d/rabbitmq-server start && \
/etc/init.d/mongod start
因为每个Dockerfile
只能有一个CMD
,所以诀窍是用&&
连接所有指令,然后为每个命令使用\
来开始一个新行。
如果您最终添加了其中的许多命令,我建议您将所有命令放在脚本文件中,并按照@larry-cai的建议启动它:
CMD /start.sh
https://stackoverflow.com/questions/25135897
复制相似问题