我有一个ec2实例,是运行一个节点应用程序。 我想做一个容器上实现使用多克. 在下午2运行两种应用之一是实际的节点应用程序(表达和巴哥)和一定时任务使用的议程。 它是一个好主意要把我的应用在一个容器?
我不熟悉的利弊这和我读docker已经是一个流程管理。 如何将于下午2适用于所有的这一次我实现它。 或者我应该仅仅是沟docker和运行的应用在地linux我ec2。
我有一个ec2实例,是运行一个节点应用程序。 我想做一个容器上实现使用多克. 在下午2运行两种应用之一是实际的节点应用程序(表达和巴哥)和一定时任务使用的议程。 它是一个好主意要把我的应用在一个容器?
我不熟悉的利弊这和我读docker已经是一个流程管理。 如何将于下午2适用于所有的这一次我实现它。 或者我应该仅仅是沟docker和运行的应用在地linux我ec2。
你有几个问题,我尝试回答以下:
这取决于,在许多情况下,为什么你会喜欢的运行相同的容器做多的事情。 但这真的取决于CPU/RAM/存储器使用情况的工作。 以及如何通常不跑?
无论如何从经验,我可以说,如果我运行了一定时任务从相同的容器时,我总是会使用的工作人员的办法,为此使用核node.js worker_threads
或 cluster
模块。 因为你不想那一定时任务的影响的行为的主线。 我有一个实例中的运行2应用在多个线程在下面的 回购协议.
Docker和下午2 2个真正不同的事情。 Docker基本上是containerize你的整个节点应用程序,使它更加容易的船舶。 下午2是一个过程的管理节点,并确保应用,并配有一些漂亮的度量和日志用户界面上午2的指标。 你绝对可以使用的2起,下午2也使得确保你的应用程序将启动后崩溃。
然而,如果使用午2,你必须使用 下午2-运行 时使用docker. 例个命令.:
FROM node:16.9.0
WORKDIR /home/usr/app
COPY . .
RUN npm ci && npm run build
# default command is starting the server
CMD ["npx", "pm2-runtime", "npm", "--", "start"]