《从最简单的入手学习 Docker (一)》一文中,可以简单的了解 Docker 的使用,这篇文章将再次重温下 Docker 的使用。

创建一个 Java Web 环境

最近公司正在使用 Java Web 开发网站应用,所以有必要了解下如何使用 Docker 创建对应的环境。开发 Java Web 应用首要使用 Tomcat。

使用 Tomcat 镜像

Tomcat 是由 Apache 软件基金会下属的 Jakarta 项目开发的一个 Servlet 容器,按照 Sun Microsystems 提供的技术规范,实现了对 Servlet 和 JavaServer Page(JSP)的支持,并提供了作为 Web 服务器的一些特有功能,如 Tomcat 管理和控制平台、安全域管理和 Tomcat 阀等。由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的Web服务器。但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,Apache HTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTP web server 不是捆绑在一起的。Apache Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。
来自 https://zh.wikipedia.org/wiki/Apache_Tomcat

使用 Tomcat 镜像很简单:

docker run -it -p 8080:8080 --rm tomcat:8.0

运行结果如下:

使用 MySQL 镜像

如果只是使用 Tomcat 镜像就写一篇文章,那也太 low 了。一个网站避免不了使用数据库,而 Java 应用使用自己的兄弟 --- MySQL,再合适不过了。

启动一个 MySQL 实例非常简单:

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=000000 -e MYSQL_DATABASE=yemeishu_database daocloud.io/mysql:latest

我们进入该容器看看,是不是已经创建了数据库:yemeishu_database,以及是否设置了 root 的密码为:000000。

如果使用数据库客户端,也可以看到创建的数据库:yemeishu_database

使用 JPress

JPress,一个 wordpress 的 java 代替版本,使用 JFinal 开发。支持类似 wordpress 的几乎所有功能,比如:模板,插件等。同时在模板上, JPress 提出了“模板即模型”的概念,方便模板制作人灵活制作业务模型,移除了 widget 等繁杂功能,同时在模板和插件制作上比 wordpress 更加灵活简洁。
来自https://github.com/JpressProjects/jpress

使用 JPress 的目标是,学习将 MySQL 容器和 Tomcat 容器配合在一起,安装和运行 JPress 博客。

这里主要编写 Dockerfile 文件和将博客源文件 jpress.war (来自于 JPress 官网) 放到 Tomcat 容器中:

FROM tomcat:8.0

MAINTAINER yemeishu "yemeishu@126.com"

COPY jpress.war /usr/local/tomcat/webapps

然后执行代码来创建新镜像:

docker build -t jpress:latest .

接着只要创建容器:

docker run -d -p 8888:8080 jpress

最后只需在浏览器输入网址:http://localhost:8888/jpress/

如果配置完之后,一直停留在最后一步,可以重启容器:

docker restart cefe34ed2003

预告

如果需要多个容器配合来配置一个项目的开发环境时,不能总是这么操作吧——一个一个容器的创建,然后再进行关联。

还好,Docker 提供了 「docker-compose.yml」文档的形式来组合多个容器来搭建开发环境。

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application’s services. Then, using a single command, you create and start all the services from your configuration.

下一步我们将使用「Docker Compose」来构建更加复杂的开发环境。


觉得这个挺好玩的

如果觉得我的文章对你有用,请随意赞赏

你可能感兴趣的文章

载入中...
Coding01 Coding01

40 声望

发布于专栏

yemeishu

记录自己开发的点点滴滴,包括微信公众号、小程序、企业微信,vuejs等开发内容

3 人关注