DockerFile---构建docker镜像的文件

dockerfile就是一个命令脚本,用来构建docker镜像的

1.dockerfile命令

dockerfile中的命令都建议大写,是为了和参数区分开来

  1. FROM命令

FROM命令指定镜像的基础镜像。比如我们要定制一个tomcat镜像,那么tomcat就是我们的基础镜像。又比如我们要制作一个我们自己的springboot服务镜像,那么java就是基础镜像。

FROM 基础镜像

eg:

FROM java:8

如果本地没有,docker会自动下载java8镜像

  1. RUN命令

指定镜像构建过程中要执行的命令。其有shell格式和exec格式
在这里插入图片描述

shell格式

RUN <命令行命令>
# <命令行命令> 等同于,在终端操作的 shell 命令。

eg:

#输出 this a run command
RUN echo "this a run command"

exec格式

RUN ["可执行文件", "参数1", "参数2"]
# 例如:
# RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline

3.COPY指令
复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
比如我们要构建一个springboot镜像就需要把宿主机中的jar包拷贝到容器中。容器的目录结构就是简化版的linux文件目录
在这里插入图片描述

COPY xxx.jar /home/hxl
  1. ADD命令

其作用和copy一样,把上下文的文件复制到容器中。不同的是,ADD命令复制压缩文件时,会把文件自动解压到容器目录中
在这里插入图片描述

ADD xxx.zip /usr/local
  1. CMD命令

运行程序时执行,其与RUN命令类似,不过RUN是在构建镜像时执行,而CMD是在运行镜像时执行。
比如我们的springboot镜像在启动时需要启动jar包,那么就可以把java -jar命令用在这里

注意:如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效
在这里插入图片描述

CMD java -jar xxxx.jar
  1. ENTRYPOINT命令
    在这里插入图片描述
ENTRYPOINT ["java","- jar","xxx.jar"]
  1. ENV命令

设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。
在这里插入图片描述

ENV JAVA_HOME /user/local/jdk1.8

#输出 /user/local/jdk1.8
RUN echo $JAVA_HOME
  1. ARG命令
    在这里插入图片描述
  2. VOLUME命令

挂载数据卷
在这里插入图片描述

VOLUME ["user/local/nginx"]
  1. WORKDIR命令
    指定工作目录,我们的命令就在这个目录下执行,
    在这里插入图片描述
  2. EXPOSE命令
    在这里插入图片描述

实战构建springboot镜像

1.在idea中安装docker插件,并且在项目目录下创建Dockerfile文件就能愉快的编写命令

FROM java:8

RUN echo "start build ng-eureka-server"

COPY *.jar /app.jar

CMD ["--server.port=8091"]

EXPOSE 8091

ENTRYPOINT ["java","-jar","/app.jar"]

RUN echo "==========end==========="

在这里插入图片描述

2.把jar包和Dockerfile都上传到目录
在这里插入图片描述
3.使用docker build命令构建镜像

docker build -t ng-eureka:1.0 .

在这里插入图片描述
可以看到镜像已经生成成功了
在这里插入图片描述
4.运行镜像

docker run -d -p 8010:8091 --name ng-server ng-eureka:1.0

在这里插入图片描述
访问测试成功
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值