Docker自定义镜像

 

目录

 

1、了解镜像结构

2、Dockerfile语法

2.1、什么是Dockerfile

2.2、构建Java项目  

2.2.1、需求:基于Ubuntu镜像构建一个新镜像,运行一个java项目

2.2.2、基于java8构建Java项目

2.3、总结 


1、了解镜像结构

         简单来说,镜像就是在系统函数库、运行环境基础上,添加应用程序文件、配置文件、依赖文件等组合,然后编写好启动脚本打包在一起形成的文件。

镜像是分层结构,每一层称为一个Layer:

BaseImage 层:包含基本的系统函数库、环境变量、文件系统
Entrypoint :入口,是镜像中应用启动的命令
其它:在 BaseImage 基础上添加依赖、安装程序、完成整个应用的安装和配置

2、Dockerfile语法

2.1、什么是Dockerfile

        构建自定义的镜像时,并不需要一个个文件去拷贝,打包。我们只需要告诉Docker,我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。而描述上述信息的文件就是Dockerfile文件。

        Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。

2.2、构建Java项目  

2.2.1、需求:基于Ubuntu镜像构建一个新镜像,运行一个java项目

                1、将java项目打成jar包,并和所用的jdk一起上传到服务器

                2、创建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

                 3、使用Dockerfile构建镜像     

                       docker build -t 镜像名:镜像tag  Dockerfile所在的目录

                4、 查看并基于镜像运行容器

                5、访问项目测试 

                     通过ip+端口+接口路径访问项目

                 此时说明该项目已经成功的构建镜像,并且已经部署到docker容器了

2.2.2、基于java8构建Java项目

        基于Ubuntu基础镜像,添加任意自己需要的安装包,构建镜像,但是却比较麻烦。所以大多数情况下,我们都可以在一些安装了部分软件的基础镜像上做改造。

        例如,构建java项目的镜像,可以在已经准备了JDK的基础镜像基础上构建。

                1、修改Dockerfile为以下内容

# 指定基础镜像
FROM java:8-alpine

# 拷贝jdk和java项目的包
COPY ./docker-demo.jar /tmp/app.jar

# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

                2、使用Dockerfile构建项目

2.3、总结 

        1. Dockerfile的本质是一个文件,通过指令描述镜像的构建过程

        2. Dockerfile的第一行必须是FROM,从一个基础镜像来构建

        3. 基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rk..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值