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程序,通过mavenpackage命令即可打包。
  • jdk8.tar.gzLinuxJavajdk8
  • 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 运行状态

Docker——Dockerfile(构建自己的CentOS镜像和Tomcat镜像)并打包镜像发布上线

Docker构建自定义镜像

04 Docker 制作自定义镜像包

Docker:Dockerfile自定义镜像

docker自定义镜像