java项目
构建Dockerfile
-
在root目录下创建目录 mkdir myproject
-
进入myproject创建Dockerfile文件
-
将可运行的jar包复制到myproject目录下。点击下载可用jar包
-
编写Dockerfile,vim Dockerfile或 vi Dockerfile
- 此centos-jdk是Dockerfile精编细作(四)中的镜像,生产环境可以自己重新编辑定制一个使用自己环境的镜像,因此镜像不支持中文,会出现中文乱码
- 需要的是jar 需要与Dockerfile在同一个目录下,否则需要指定jar包路径
ADD /root/myproject/$APP_NAME-1.0.0.jar /home/admin/$APP_NAME/$APP_NAME-1.0.0.jar
# 基于centos镜像
FROM centos-jdk8
# 创建别名即项目名称
ENV APP_NAME demo
# 创建用户的主目录 不要将此用户添加到最近登录和登录失败数据库
RUN adduser -create-home --no-log-init --shell /bin/bash admin
# 指定容器启动的用户
USER admin
# 输出结果到/home/admin/start.sh文件中;
# “chmod +x”:/home/admin/start.sh给执行的权限;
# “mkdir -p”:递归创建logs目录;
# “chmod -R 777”:将当前目录下所有文件及目录和目录下的文件权限修改成可读可写可执行
RUN echo “java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms128m -Xmx128m -Xmn128m -Xss512k ->XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar /home/admin/$APP_NAME/$APP_NAME->1.0.0.jar”>>/home/admin/start.sh &&
chmod +x /home/admin/start.sh &&
mkdir -p /home/admin/logs/ &&
chmod -R 777 /home/admin/logs/# 将需要执行的包文件copy到执行目录中
ADD $APP_NAME-0.0.1.jar /home/admin/$APP_NAME/$APP_NAME-1.0.0.jar
# logs文件夹数据的持久化
VOLUME /home/admin/logs/
# 设置工作目录
WORKDIR /home/admin/
# 容器启动时要执行的命令
CMD [“sh”,"/home/admin/start.sh"]
# 对外暴漏端口 纯提示作用
EXPOSE 8080 -
构建镜像
docker build -it demo .
-
查看镜像
-
运行镜像 docker run -d -p 8080:8080 demo
-
执行查询接口,检查是否可以成功访问
-
进入容器查看日志