如何在阿里云服务器上使用docker部署jpress

现在使用 Docker 来构建一个 JPress 的应用

过程如下:

  1. 使用 Tomcat 的镜像,把 JPress 的 WAR 包打包进去
  2. 再启动一个 MySQL 的 Docker 容器
  3. JPress 应用连接 MySQL

配置阿里云安全组规则

阿里云默认只允许 22 端口连接,如果还需要其他端口的话,需要配置一下安全组规则。这里需要配置一下 Tomcat 的 8080 端口和 MySQL 3306 端口

8080 端口

在实例列表中,选择“更多 - 安全组配置”

选择“配置规则”

按照如下图设置,允许外网访问 8080 端口

对于“规则方向”,文档 里有讲:

  • 出方向:是指 ECS 实例访问内网中其他 ECS 实例或者公网上的资源。(也就是主机到外网)
  • 入方向:是指内网中的其他 ECS 实例或公网上的资源访问 ECS 实例。(即外网到主机)

3306 端口

按照下图设置

需要注意的是,我只允许本机可以访问 MySQL,所以把“授权对象”填写成自己的外网 IP

构建 JPress 镜像

新建一个文件夹,然后下载 JPress 的 WAR 包。

创建一个 Dockerfile 文本文件,然后写入如下信息。tomcat 镜像的配置,可以看官网

# 使用 tomcat 作为基础镜像
FROM tomcat:8

# 作者信息
LABEL maintainer="ikutarian46@ikutarian46.com"

# 把 jpress.war 复制到 webapps 目录下
COPY jpress.war $CATALINA_HOME/webapps

构建镜像,镜像的名字指定为 jpress:latest

docker build -t jpress:latest .

输入 docker image ls jpress 就可以看到创建好的 jpress 镜像了

root@iZ94fg0bhwgrgtZ:~/docker# docker image ls jpress
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jpress              latest              adda9c53bd34        3 minutes ago       483MB

启动 JPress 镜像

docker run -d -p 8080:8080 jpress

-d 表示容器后台启动,-p 8080:8080 表示宿主机的 8080 端口访问容器的 8080 端口。TAG 默认是 latest,所以不写也行

使用 netstat -na | grep <port> 可以查看宿主机的端口监听状态。使用 docker ps 也可以看到目前启动的容器相关信息

启动 MySQL 容器

mysql 镜像的使用方法,可以看官网

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jpress mysql:5.7

-d 后台启动。-p 3306:3306 宿主机的 3306 端口连接容器的 3306 端口。-e MYSQL_ROOT_PASSWORD=123456 指定环境变量 MYSQL_ROOT_PASSWORD 的值,这里是指定 ROOT 密码为 123456-e MYSQL_DATABASE=jpress 指定环境变量 MYSQL_DATABASE 的值,这里是默认创建一个名为 jpress 的数据库

使用 JPress

根据本机的 IP 访问 JPress,比如是 http://111.111.111.111/jpress,就可以看到界面了,如图:

按照提示一步一步操作即可。在连接 MySQL 时,注意一下 IP,不要写成 localhost 了,因为这里的 localhost 是只 JPress 容器自己的 localhost,而不是宿主机的 localhost

JPress 安装完成之后,执行 docker restart <containerId> 重启容器

版权声明:
作者:Miigua
链接:https://www.miigua.com/article/15.html
来源:米瓜的博客
文章版权归作者所有,未经允许请勿转载。

THE END
二维码
打赏
请在后台主题设置处设置打赏图片
< <上一篇
下一篇>>