【笔记】Dockerfile自定义镜像
前言
Dockerfile自定义镜像学习笔记
Dockerfile是一个文本文件,用于存放自动化部署镜像的脚本代码
镜像结构
- 镜像:将应用程序及其需要的系统函数库、环境、配置、依赖打包而成的
- 基础镜像(BaseImage):应用依赖的系统函数库、环境、配置、文件等
- 入口(Entrypoint):镜像运行入口,一般是程序启动的脚本和参数
- 层(Layer):在基础镜像基础上添加安装包、依赖、配置等时,每次操作都形成一层
Dockerfile的常用指令
指定基础镜像
<system>
:操作系统名<version>
:操作系统版本
1 | FROM <system>:<version> |
设置环境变量
<key>
:环境变量键<value>
:环境变量值
1 | ENV <key> <value> |
将本地文件拷贝到镜像内
<file_local>
:本地文件<src_image>
:镜像内的目录
1 | COPY <file_local> <src_image> |
在镜像内执行命令
<shell>
:Shell命令
1 | RUN <shell> |
指定容器运行时监听的端口
<port>
:端口号
1 | EXPOSE <port> |
镜像中应用启动
1 | EXTRYPONIT java -jar xxx.jar |
Java项目Dockerfile案例
java:8-alpine
:包含了操作系统和jdk8环境的基础镜像./demo.jar
:指定宿主机上的jar包路径
1 | FROM java:8-alpine |
通过Dockerfile构建镜像
<image_name>:<version>
:镜像名和版本号<src_dockerfile>
:Dockerfile所在的目录,如果是当前目录就指定.
1 | docker build -t <image_name>:<version> <src_dockerfile> |