Dockerfile&&Dockerfile 制作SpringBoot(三)

1、FROM

一般是Dockfile开头的语法,他的作用是指定我们所新创建的docker image的base image。

# 表示我们从头去创建image 不依赖于base image
FROM scratch            
# 从centos之上建立Image
FROM centos

2、LABEL

给创建的镜像添加标签,比如作者信息,版本信息,描述信息等。其实LABEL 比较像我们写代码时候的注释,在创建镜像是应该是必不可少的。

LABEL maintainer = "作者姓名"
LABEL version = "1.0"
LABEL description = "描述"

3、RUN

相当于执行命令,比如我们需要在镜像中安装一些软件,那么就需要使用RUN语法,但是需要注意的是,由于每条RUN操作会在docker之中新建一个镜像,所以我们尽量将一些命令合并成一条,在这里我们可以使用反斜杠换行,使其阅读美观。

RUN yum update && \
    yum install -y vim

4、WORKDIR

类似于linux下的 cd 命令,用WORKDIR,不要用RUN cd,尽量使用绝对目录。

#如果没有会自动创建test目录
WORKDIR /test    
#同上
WORKDIR demo     
# 输出 /test/demo
RUN pwd        

5、ADD和COPY

Dockerfile&&Dockerfile 制作SpringBoot(三)_第1张图片

#复制到根目录
ADD hello /
#添加到根目录并解压
ADD test.tar.gz  /

6、ENV

为当前容器设置环境变量时,我们可以使用ENV设置一个常量,比如我们想安装一个5.7的MYSQL 我们可以这么做

 # 设置常量 MYSQL_VERSION  值是 5.7
ENV MYSQL_VERSION 5.7    
#引用常量
RUN apt-get install -y mysql-server = “${MYSQL_VERSION}”  

7、RUN、CMD、ENTRYPOINT

RUN:执行命令并创建新的Image Layer(一层)。
CMD:设置容器启动后默认执行的命令和参数。
ENTRYPOINT:设置容器启动时运行的命令。

8、指令 VOLUME 介绍

容器是基于镜像创建的,最后的容器文件系统包括镜像的只读层+可写层,容器中的进程操作的数据持久化都是保存在容器的可写层上。一旦容器删除后,这些数据就没了,除非我们人工备份下来(或者基于容器创建新的镜像)。能否可以让容器进程持久化的数据保存在主机上呢?这样即使容器删除了,数据还在。而docker本身提供了一种机制,可以将主机上的某个目录与容器的某个目录(称为挂载点、或者叫卷)关联起来,容器上的挂载点下的内容就是主机的这个目录下的内容,这类似linux系统下mount的机制。 这样的话,我们修改主机上该目录的内容时,不需要同步容器,对容器来说是立即生效的。 挂载点可以让多个容器共享。

9、Dockerfile springboot

9.1、环境准备:
springboot jar包一个,仅只有一个controller,并且把包上传到虚拟机上
Dockerfile&&Dockerfile 制作SpringBoot(三)_第2张图片
Dockerfile&&Dockerfile 制作SpringBoot(三)_第3张图片
9.2、创建Dockerfile

mkidr /usr/local/docker/Dockerfile/springboot
vim Dockerfile
#基础镜像
FROM java:8
#同步数据
VOLUME /tmp
#添加jar包到容器中
ADD hello-docker.jar  app.jar
#同步时间
RUN bash -c 'touch /app.jar'
#暴露端口
EXPOSE 8080
#运行命令
ENTRYPOINT ["java","-jar","/app.jar"]
#注释
LABEL maintainer = "zrs"
LABEL version = "1.0"
LABEL description = "docker入门"

9.3、打包image

docker build -t zhuzhu/hello-docker .

Dockerfile&&Dockerfile 制作SpringBoot(三)_第4张图片
9.4、运行

docker run -d -p 8080:8080 26ea2577a965

在这里插入图片描述
9.5、访问
Dockerfile&&Dockerfile 制作SpringBoot(三)_第5张图片

你可能感兴趣的:(Docker)