Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Docker获取JDK+;MySQL+;Tomcat容器?_Docker - Fatal编程技术网

如何使用Docker获取JDK+;MySQL+;Tomcat容器?

如何使用Docker获取JDK+;MySQL+;Tomcat容器?,docker,Docker,我的目标是获得“JDK+MySQL+Tomcat”Docker镜像 我是不是应该想通过建立这样的形象来实现这一点: docker build -t myImage . 使用以下Dockerfile FROM mysql FROM tomcat FROM openjdk 然后像这样运行此图像: docker run -d -p 80:80 myImage 我应该改用yaml吗?运行tomcat和mysql服务器的最佳实践是什么?在yaml内部还是在控制台中手动运行?首先,您需要在微服务中拆

我的目标是获得“JDK+MySQL+Tomcat”Docker镜像

我是不是应该想通过建立这样的形象来实现这一点:

docker build -t myImage .
使用以下Dockerfile

FROM mysql
FROM tomcat
FROM openjdk
然后像这样运行此图像:

docker run -d -p 80:80 myImage 

我应该改用yaml吗?运行tomcat和mysql服务器的最佳实践是什么?在yaml内部还是在控制台中手动运行?

首先,您需要在
微服务中拆分应用程序,这是docker的理念,并且具有许多优点,包括:

  • 改进的故障隔离
  • 消除了对单个技术堆栈的长期承诺
  • 使新开发人员更容易理解功能 一种服务
  • 更轻松的升级管理
在您的情况下,我建议将
JDK
Mysql
Tomcat
分离到各自的容器中。在
dockerhub
上已经有
Library
图像(官员)。您可以使用
用户定义的网络
将3个容器连接在一起

多次使用
FROM
指令将不会为您合并图像。来自
的最后一个
将接管


最后,如果您坚持将它们组合在一个映像中,您应该选择一个基本映像,如
Debian
,并使用
Run
指令来安装所需的包并构建容器。

我应该构建一个映像然后运行它吗?或者最好与YAML一起使用
docker compose up-d
?YAML文件的存在是否意味着我可以避免显式构建映像?取决于,如果需要根据需要更改映像,则需要构建映像,但如果不需要,则可以使用
官方映像
。无论哪种方式,您都将使用
docker compose
一致地调出容器。