1. 把要部署的工程打成一个jar包。(我的工程叫 gentle )
打 jar 的方法:超简单方法: Intellij Idea 把 java 工程打成可运行的 jar
2. 把 jar 包上传到 服务器确定目录下。
我是用 rz 命令直接选择 jar 上传到我存放 jar 的目录:/root/jiangyu/dockerfiles/jar
3.编写超级简单版本的 dockerfile 文件:
# jdk 是一个已有的包含 jdk 的镜像
FROM jdk
# 作者签名
MAINTAINER JY
# 简化 jar 的名字路径 (#:表示注释掉)
COPY jar/gentle-1.0-SNAPSHOT.jar /app.jar
# 执行 java -jar 命令 (CMD:在启动容器时才执行此行。RUN:构建镜像时就执行此行)
CMD java -jar /app.jar
# 设置对外端口为 8089
EXPOSE 8089
4. 通过 dockerfile 文件生成本工程的镜像:
# -t :给镜像取名为 gentle
docker build -t gentle .
此行命令最后有一个点,表示使用当前上下文中的 dockerfile 文件 。
docker images 查看原有镜像 ,并构建新镜像:gentle:
从第 2 次查看镜像可以确认,新的镜像 gentle 已构建成功。
5. 通过镜像启动容器,命令如下:
# -d 后台运行、
# 最后一个 gentle 是引用的镜像的名字、
# --name jy_gentle 给容器取名为 jy_gentle (取名参数前面是两短横线)、
# -p 8089:8089 端口映射,注意是小写 p
# 前一个 8089 是对外浏览器上访问的端口,后一个 8089 是容器内工程本身的端口,两者可不一样
docker run -d -p 8089:8089 --name jy_gentle gentle
docker ps -a :查看当前服务器上所有容器。
从第 2 次查看可知容器已成功启动。黄框中的是各个容器使用的镜像的名字,蓝框中的是各个容器的名字。
我的工程设置的本地端口也是8089