3

Docker 部署 java web 应用

 2 years ago
source link: https://blog.51cto.com/u_15640312/5558251
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

mac下安装 docker

首先,大家可以在下面这个地址中先下载安装 docker ,之后在分享的过程中,大家可以一起实际操作。

 ​https://www.docker.com/products/docker-desktop​

安装完成后,双击 docker ,右上角显示 docker 的图标,如下图所示:

Docker 部署 java web 应用_tomcat

打开终端,输入 docker version,出现 Client 及 Server 端相关信息如下,说明安装成功:

Docker 部署 java web 应用_mysql_02

下载 web 应用的 war包

Jpress 是一个开源的 java web应用,本次分享,我们就来部署这个项目,大家先下载好 jpress 最新的 war 包,存放到本地,访问下面的地址,下载安装包即可:

 ​http://jpress.io/​

下载 tomcat 镜像

我们下载网易镜像中心的 tomcat 镜像作为基础镜像,地址为:​ ​https://c.163yun.com/hub#/home​​ 使用第一个 docker 版本就可以。tomcat 这个镜像已经包含 jdk 了。

docker pull hub.c.163.com/library/tomcat:latest
Docker 部署 java web 应用_mysql_03
docker images

Docker 部署 java web 应用_docker_04

Dockerfile 构建 web 镜像

首先,通过镜像的官方文档我们可以获悉如下信息:

Docker 部署 java web 应用_mysql_05

war 包的名字比较长,我们先给 war 包重命名一下:

mv jpress-v3.3.0 jpress.war

创建 Dockerfile:

From hub.c.163.com/library/tomcat:latest
MAINTAINER liping [email protected]
COPY jpress.war /usr/local/tomcat/webapps

注意,Dockerfile 和 war 包放在同一目录下。

Docker 部署 java web 应用_docker_06

docker build -t jpress:latest .

docker build 后面跟 dockerfile 的存放目录,会执行 dockerfile 中的命令,当前目录就是一个点,-t 设置所构建的镜像的名称:标签。

Docker 部署 java web 应用_mysql_07
docker images

Docker 部署 java web 应用_docker_08

docker run -d -p 8888:8080 jpress

Docker 部署 java web 应用_mysql_09

docker ps

Docker 部署 java web 应用_mysql_10

netstat -na|grep 8888

Docker 部署 java web 应用_mysql_11

访问 localhost:8888 , tomcat 已经启动成功。

Docker 部署 java web 应用_mysql_12

访问 localhost:8888/jpress

Docker 部署 java web 应用_tomcat_13

jpress 已经可以正常访问了,但是需要数据库,我们可以在 docker 里运行一个 mysql。

Docker 快速部署 mysql

我们还是在网易镜像中心下载 mysql 的镜像:

docker pull hub.c.163.com/library/mysql:latest
Docker 部署 java web 应用_tomcat_14
docker images

Docker 部署 java web 应用_mysql_15

通过官方说明文档,我们可以知道 mysql 容器的端口是3306:

Docker 部署 java web 应用_docker_16
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=000000 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql:latest

-e 是设置环境变量,MYSQL_ROOT_PASSWORD=000000 是为 root 账户设置密码,MYSQL_DATABASE=jpress 是创建数据库。

Docker 部署 java web 应用_mysql_17

docker ps

Docker 部署 java web 应用_mysql_18

接下来,我们就可以接着配置数据库了。配置之前我们先来查看下宿主机的 ip 地址:

Docker 部署 java web 应用_docker_19
Docker 部署 java web 应用_tomcat_20
Docker 部署 java web 应用_mysql_21
Docker 部署 java web 应用_mysql_22

jpress 网站可以正常访问了,使用 docker 部署 web 应用成功。

Docker 部署 java web 应用_docker_23

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK