前言
Docker容器的哲学是一个Docker容器只运行一个进程,但是有时候我们就是需要在一个Docker容器中运行多个进程。比如微服务过多,但硬件资源比较紧张时,可以考虑将多个jar包放入一个Docker中运行。
将所有启动命令放到一个shell脚本中
将所有启动命令放到一个脚本中,然后在这个脚本中拉起多个进程。注意最后要增加一个死循环不要让这个脚本退出,否则拉起的进程也退出了。
#!/bin/bash
# 命令后加入 & ,保持程序后台持续运行
nohup java -jar /ltzy/eureka-center-1.0-SNAPSHOT.jar 8019 1019 &
nohup java -jar /ltzy/controller-2.0.jar 7019 2019 127.0.0.1 8019 1019 &
nohup java -jar /ltzy/engine-2.0.jar ltzy 1 127.0.0.1 8019 1019 6019 &
# 死循环,保持docker前台运行
while [[ true ]]; do
sleep 1
done