1、打包好的jar文件上传到服务器
2、与jar包同目录下新建Dockerfile文件
vi Dockerfile
# 基于openjdk
FROM openjdk:8-jdk-alpine
# 设置工作目录,进入到容器中的初始目录,不存在会自动创建
ENV MYPATH /root
WORKDIR $MYPATH
# 复制jar到工作目录并改名为app.jar
# 相对于Dockerfile文件的路径
# ADD 命令必须提供两个参数,第一个参数为:宿主机中的目录,相对于Dockerfile文件
# 第二个参数为容器中的目录,相对于WORKDIR
ADD test.jar app.jar
# 添加容器卷,方便以后的处理,关联宿主机中的目录,不存在会自动创建
VOLUME $MYPATH
# 暴露端口
EXPOSE 8080
# 运行jar包
CMD java -jar app.jar
FROM:指定基础镜像,必须为第一个命令
MAINTAINER: 维护者信息
LABEL:用于为镜像添加元数据
ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
WORKDIR:工作目录,类似于cd命令
RUN:构建镜像时执行的命令
CMD:构建容器后调用,也就是在容器启动时才进行调用。
ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。
ENV:设置环境变量
EXPOSE:指定于外界交互的端口
VOLUME:用于指定持久化目录
ARG:用于指定传递给构建运行时的变量
USER:指定运行容器时的用户名或 UID,后续的 RUN
也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
ONBUILD:用于设置镜像触发器
3、编译Dockerfile文件生成Docker镜像
docker build -t app-demo .
-t app-demo:生成目标镜像名
如果需要删除旧的镜像
docker rmi 镜像名
4、运行app-demo镜像
docker run -d -p 8081:8081 app-demo
-d :在后台运行容器
-p 8081:8081 :主机端口号:容器端口号
app-demo :镜像名称
5、查看容器运行状态
docker ps 删除旧的容器,需要先停止容器,再删除。
docker stop 容器ID docker rm 容器ID
6、查看容器运行输出的日志信息
docker logs -f 容器ID -f :不间断持续输出