- 准备DockerFile,建议放到项目根目录与pom.xm 同级;
FROM openjdk:8-jre
MAINTAINER Team303
VOLUME /tmp
ADD /target/elite-customer-service.jar app.jar
ADD /target/lib /lib
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN bash -c 'touch /app.jar'
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
参数说明:
#openjdk:8-jre:基础镜像指定openjdk:8 可以省去指定JAVA_HOME,PATH等操作;
#MAINTAINER:维护者信息
#/tmp 目录会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
#ADD:将当前目录下的target下依赖lib和项目jar 复制到容器中;
#bash方式执行,使elite-customer-service.jar可访问
#RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
#指定容器启动程序及参数 <ENTRYPOINT> "<CMD>"
- 使用IDEA_Docker构建镜像,如下图
Run->Edit ConfigurationS->点击"+" ->Docker->Dockerfile,Server一栏选择配置好的docker环境。
- 执行构建镜像命令
镜像构建完成: - 创建容器并运行
选择上一步骤构建成功的镜像,右键选择"Create container",输入容器名称和容器与宿主机的端口映射,本项目我把容器内logs日志也映射到宿主机了,输入完成点击下方"run",自动创建容器并启动,操作如下图;
- 进入服务器查看容器状态
- 查看日志,docker logs -f -t --tail 行数 容器id或者容器名
docker logs -f -t --tail 50 096e99589d09