docker - 在Kubernetes集群中使用Docker镜像启动服务的最佳实践

标签 docker kubernetes devops

在Kubernetes集群中启动Docker容器的最佳方法是什么?使用命令选项创建Kubernetes Pod时,是在Docker容器本身中启动服务还是通过命令传递更好?

我正在使用的镜像具有多种服务,因此我尝试通过更改它们运行的​​服务并将这些镜像传递到Kubernetes容器来构建许多镜像,但是如果我可以从容器本身启动服务,则只需要管理一幅图像。

目前,我有两个Dockerfile,一个用于主进程

FROM node:10
WORKDIR /app
COPY . /app
RUN yarn
CMD ["yarn", "start:app"]
EXPOSE 3000

还有一个Dockerfile.worker作为我的后台 worker
FROM node:10
WORKDIR /app
COPY . /app
RUN yarn
CMD ["yarn", "start:worker"]

目前,我正在同一代码库中管理两个镜像,我在考虑拥有一个镜像并通过Kubernetes传递启动命令是否更好。

最佳答案

因此,认为这是一个很自以为是的问题,但是我相信一个Docker镜像应该只具有一个进程(因此,最好将它设置在Dockerrfile中,因为无论您在哪里运行它都不需要对其进行配置),但是有时获得单个Docker镜像可能具有多个命令的用例,在这种情况下,我建议将最常用的命令设置为Dockerfile中的默认命令,然后如果需要的话可以在启动时使用Kubernetes命令标志覆盖此命令使用不同命令的图像

关于docker - 在Kubernetes集群中使用Docker镜像启动服务的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57840234/

相关文章:

docker - 以非 super 用户身份在docker ubuntu容器中使用 super 用户运行sshd

wordpress - 使用 docker-compose 和 nginx 在子目录中安装 wordpress

docker - Docker创建两个镜像

maven - 将maven的docker镜像与jenkins结合使用-无法创建本地存储库

java - 将 Spring WAR 部署到基于 Tomcat 的 docker

security - 您是否将 dotenv 文件留在服务器中?或者删除它?

kubernetes - kube-dns 错误 : reply from unexpected source

kubernetes - Kubernetes自动回滚

docker - Dockerfile是否与Raspberry Pi兼容?

.net - Azure DevOps nuget 工件延迟