我正在研究 Docker,为了更好地理解,我想用它来运行我刚才创建的 Java Web 应用程序。后端使用Java、Spring、Hibernate,前端使用Spring MVC,数据库使用MySQL。在Eclipse中,可以方便的在Tomcat上运行,在浏览器中打开。本质上,它是一个简单的 CRUD 应用程序。
为了创建一个 dockerfile 来运行它,我是否需要从 (FROM) 操作系统镜像开始?如何包含 Java、MySQL 和 Tomcat 实例?我如何配置它来运行应用程序 war ?
最佳答案
标准的 Docker 风格是每个容器有一个服务,然后有一个编排工具将容器作为一个组来管理。
Docker 附带一个名为 Docker Compose 的工具使用 docker-compose.yml
文件配置。
version: '2'
services:
myapp_web:
build: ./web/
ports:
- "8080:8080"
networks:
- myapp_net
myapp_db:
build: ./db/
volumes:
- myapp_data:/var/lib/mysql
networks:
- myapp_net
volumes:
myapp_data:
networks:
myapp_net:
driver: bridge
Docker文件
如果您从现有图像启动 Dockerfile 将是最简单的,这样您就不必处理完整的构建。最流行的开源软件将在 Docker Hub 上提供图像.搜索“docker”通常是最重要的结果。查看您使用的图像中的 Dockerfile
。官方图像倾向于使用所有当前的最佳实践。
mysql
image为您提供带有一些自定义配置选项的空白 mysql 安装。您最初可能不需要这里的 Dockerfile
。
./db/Dockerfile
FROM mysql:5.7
RUN some-setup.sh
tomcat
image提供有效的 OpenJDK 和 Tomcat 安装,供您部署应用。
./web/Dockerfile
FROM 8.0-jre8-alpine
COPY myapp.war /usr/local/tomcat/webapps/myapp.war
关于java - dockerfile 应该包含什么来运行一个简单的 CRUD Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39214111/