通过docker运行java服务器有意义吗?

通过docker运行java服务器有意义吗?,java,docker,server,containers,scalability,Java,Docker,Server,Containers,Scalability,我将创建一个java服务器/客户机结构,它通过tcp套接字使用双向通信。对于每个请求的客户端,都会创建一个新线程。此时,它正在虚拟机上从托管服务运行。现在我想用docker。但在这种情况下,切换到docker真的有意义吗?docker真的需要像java服务器一样运行永久性应用程序吗?我在这里如履薄冰,但无论如何,我还是要说。。。如果您在Linux上运行一个进程,在大多数情况下,该进程是在一个容器中运行的 容器是Linux内核的固有特性名称空间、cgroup等。。包括Docker Engine在内

我将创建一个java服务器/客户机结构,它通过tcp套接字使用双向通信。对于每个请求的客户端,都会创建一个新线程。此时,它正在虚拟机上从托管服务运行。现在我想用docker。但在这种情况下,切换到docker真的有意义吗?docker真的需要像java服务器一样运行永久性应用程序吗?

我在这里如履薄冰,但无论如何,我还是要说。。。如果您在Linux上运行一个进程,在大多数情况下,该进程是在一个容器中运行的

容器是Linux内核的固有特性名称空间、cgroup等。。包括Docker Engine在内的解决方案主要使内核的这些(有些神秘)功能更广泛地可用,更易于使用

容器和虚拟机是非常独特的技术。扩展上述功能,您可以在容器中运行VM,并且—您几乎总是—在VM中运行容器

一路上都是集装箱:-

直接回答您的问题:您已经在容器中运行Java服务器,并且它正在VM上运行。您可以决定做两件事,但请在决定之前详细阅读每件事:

如果现有VM中还没有Docker Engine,则将其添加到现有VM中,以便更轻松地将Java服务器作为Docker容器进行管理。好处:不清楚,但见下文

从虚拟机中提取Java服务器!并将服务器作为Docker容器运行。好处:不清楚;后果:可能无法与您的托管公司合作;潜在的安全问题;没有明确界定的利益;等等

使用容器和将容器部署到现有托管提供商并继续使用其虚拟机的一个好处是,您可以在托管提供商以外的位置进行构建和测试,并且可以保证在构建和测试期间工作的容器映像也可以在您的托管服务上工作生产中的供应商


当然可以。你认为docker是干什么的?Docker是虚拟机的替代品。许多地方在Docker中运行Java服务。很多人也不这样做,因为JVM已经是一个虚拟机了,而且像CloudFoundry这样的一些工具不需要你增加开销。