DockerFile
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
创建Dockerfile文件
vi Dockerfile
具体内容如下:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD learn-docker-storage-1.0-SNAPSHOT.jar app.jar
EXPOSE 8003
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
命令解释:
FORM:定制的镜像都是基于 FROM 的镜像,这里的 openjdk 就是定制需要的基础镜像,后续操作都是基于openjdk
VOLUME:挂载一个数据卷,这里因为没有名称,所以是一个默认的数据卷(后面详细解释)
ADD:添加一层镜像到当前镜像,这里就是添加SpringBootTest镜像到当前层,并改名app.jar
EXPOSE:暴漏端口,因为我们的自己的端口是8003,所以我们暴漏8003
ENTRYPOINT:设定容器启动时第一个运行的命令及其参数,这里就是容器以启动就执行 java -jar /app.jar
打包镜像
写好DockerFile后就需要用docker build命令来构建我们的镜像了,这样就可以将我们的微服务打包成一个镜像了
构建命令格式
构建一个镜像需要使用以下命令
docker bulid -t 仓库名/镜像名:tag .
实例:
docker build -t learn-docker-storage:0.0.1 .
参数解释
-t: 镜像的名字及标签,一般命名规则是 仓库名/镜像名:tag,
仓库名:一般是私服或者dockerhub等地址,如果忽略默认就是dockerhub的地址docker.io/library/
镜像名称:就是我们的自己的服务名称,可以随意命名
tag:就是我们的版本号
.:这个 . 表示当前目录,这实际上是在指定上下文的目录,只有.的话是指当前目录
docker build命令会将该目录下的内容打包交给Docker引擎以帮助构建镜像。