如何在阿里云服务器上使用docker部署jpress
现在使用 Docker 来构建一个 JPress 的应用
过程如下:
- 使用 Tomcat 的镜像,把 JPress 的 WAR 包打包进去
- 再启动一个 MySQL 的 Docker 容器
- 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
来源:米瓜的博客
文章版权归作者所有,未经允许请勿转载。
全部评论