目录
回顾
镜像含义
DockerFile语法
自定义java项目镜像
创建一个空目录,在这个空目录中创建一个文件,命名为 DockerFile,将 java 项目打包成 jar 包,放到这个目录中
编辑
编写DockerFile文件信息
使用 docker build 构建为一个镜像
查看构建的镜像
docker run运行镜像
回顾
镜像含义
是一个轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),之后个打包好的运行环境就是image镜像文件。
DockerFile语法
DockerFile就是一个纯文本,里面记录了一系列的构建指令,如选择基础镜像、拷贝文件、运行脚本等等,Run,Copy,Add指令都会生成一个Layer,而Docker顺序执行这个文件里的所有步骤,最后就会创建出一个新的镜像出来。
以下命令参考官方文档
指令 | 说明 |
FROM | 指定基础镜像 |
ENV | 设置环境变量,可在后面指令使用 |
COPY | 拷贝本地文件到镜像的指定目录 |
RUN | 指令linux的shell命令,一般是安装过程的命令 |
EXPOSE | 指定容器运行时监听的端口,是给镜像使用者看的 |
ENTRYPOINT | 镜像中应用的启动命令,容器运行时调用 |
自定义java项目镜像
创建一个空目录,在这个空目录中创建一个文件,命名为 DockerFile,将 java 项目打包成 jar 包,放到这个目录中
编写DockerFile文件信息
基本信息如下:
- 基于XXX作为基础镜像
- 将 app.jar 拷贝到镜像中
- 暴露端口
- 编写入口 ENTRYPOINT
#基础镜像
FROM java:8-alpine
#设置时区
ENV TZ=Asi/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#拷贝jar包
COPY docker-demo.jar /app.jar
#暴露端口
EXPOSE 8090
#入口
ENTRYPOINT ["java","-jar","/app.jar"]
使用 docker build 构建为一个镜像
参数说明:
- -t 表示设置镜像名和版本号(自定义)
- . 表示 Dockerfile 所在目录,因为刚刚我是将 Dockerfile 放在了当前文件目录下,所以就用 . 来表示当前目录
查看构建的镜像
docker run运行镜像
根据服务器 IP 和自己配置的镜像映射端口号以及项目地址就可以访问了