Docker -- 自定义镜像(Dockerfile)基于Ubuntu镜像构建一个新镜像基于java:8-alpine镜像将一个Java项目构建为镜像
Posted CodeJiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker -- 自定义镜像(Dockerfile)基于Ubuntu镜像构建一个新镜像基于java:8-alpine镜像将一个Java项目构建为镜像相关的知识,希望对你有一定的参考价值。
文章目录
1. 自定义镜像
1.1 镜像结构
小结:
1.2 什么是Dockerfile
更新详细语法说明,请参考 官网文档
2. 案例
2.1 案例1:基于Ubuntu镜像构建一个新镜像,运行一个java项目
2.1.1 步骤1:新建一个空文件夹 docker-demo 用于存放镜像
2.1.2 步骤2:拷贝 docker-demo.jar、jdk8.tar.gz 、Dockerfile 文件到docker-demo这个目录
说明:
docker-demo.jar
是一个简单的javaweb程序,通过maven
的package
命令即可打包。jdk8.tar.gz
是Linux
下Java
的jdk8
。Dockerfile
是构建镜像的文本文件。
Dockerfile
# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local
# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar
# 安装JDK
RUN cd $JAVA_DIR \\
&& tar -xf ./jdk8.tar.gz \\
&& mv ./jdk1.8.0_144 ./java8
# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
2.1.3 步骤三:进入docker-demo然后输入构建命令
cd /root/docker-demo
# .是在当前目录(Dockerfile所在目录)构建的意思
docker build -t javaweb:1.0 .
查看刚刚构建的镜像:
2.1.4 启动镜像
命令行输入:docker run --name web -p 8090:8090 -d javaweb:1.0
使用ifconfig
查看linux ip
地址,这是我的地址192.168.135.130
:
然后我在Windows
上面打开游览器输入了:http://192.168.135.130:8090/hello/count
你们可以根据你们自己项目的路径映射去看看有没有启动成功。
2.2 基于java:8-alpine镜像,将一个Java项目构建为镜像
我们去修改Dockerfile
文件,使用java:8-alpine
来构建镜像,这样就省去了一大推配置jdk的步骤。
# 指定基础镜像
FROM java:8-alpine
# 和java项目的包
COPY ./docker-demo.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
然后终端输入docker build -t javaweb:2.0 .
再次构建镜像:
3. 小结
以上是关于Docker -- 自定义镜像(Dockerfile)基于Ubuntu镜像构建一个新镜像基于java:8-alpine镜像将一个Java项目构建为镜像的主要内容,如果未能解决你的问题,请参考以下文章
docker基础——自定义镜像创建私有仓库查看 docker 运行状态