什么是Dockerfile

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

指令及其说明

在这里插入图片描述
详情见官方文档:docker自定义镜像创建.

个人镜像创建流程

Dockerfile文件创建

  • 详细写法
# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local

# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./music-java.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 8888
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
  • 简要写法(建议使用)
# 指定基础镜像
FROM java:8-alpine
COPY ./music-java.jar /tmp/app.jar
# 暴露端口
EXPOSE 8888
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

使用docker build命令构建镜像

  • 指令
docker build -t music-java:1.0 .
  • 指令解读
    其中 music-java为镜像名,1.0为镜像版本号
    不要后面忘了加 .表示Dockerfile文件在当前目录下

运行镜像

  • 指令
docker run --name music -p 8888:8888 -d music-java:1.0
  • 指令解析
    --name music为给容器命一个名为music
    -p将docker容器端口与主机端口映射
    -d表示后台运行
    music-java:1.0表示镜像的名称以及版本号

附文件目录结构

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐