如何创建一个自己的Docker镜像(Dockerfile)
声明,不知道Docker的常用命令,后面会持续更新。
首先什么是Dockerfile?
Dockerfile是一个用来定义镜像构建过程的文本文件,包含了一系列按顺序执行的 指令(Instruction),用于 自动化构建 Docker 镜像。
简单说:
- 你手动通过 docker run 启动容器、安装软件、配置环境的步骤,都可以写成 Dockerfile 里的指令;
- 执行 docker build 命令后,Docker 会按 Dockerfile 的指令一步步构建出标准化的镜像;
- 构建好的镜像可以分发(比如传到 Docker Hub),其他人拿到后直接 docker run 就能启动相同环境的容器,实现 “一次构建,到处运行”。
Dockerfile的格式
- 导入基础镜像(没有则需要导入)
- 定义工作目录
- 导入jar包
- 编写执行语句
如下:
FROM openjdk:8
WORKDIR /app
ADD ./docker-0.0.1-SNAPSHOT.jar /app/docker-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java", "-jar", "docker-0.0.1-SNAPSHOT.jar" ]
接下来以上面的Dockerfile为例,我需要导入一些文件(需要部署的jar包、jdk8的压缩包),个人将其放在/opt/test下。

导入jdk8后,需要加载后才能使用:
docker load -i jdk.tar //docker加载jdk8
之后,按上面编写Dockerfile文件(vi Dockerfile),保存并退出。
接下来就可以创建自己的镜像了,会按照你所编写的Dockerfile文件进行创建:
docker build -t test:1.0 .
注意不要丢失后面的 . 。
这样你就成功创建了自己的Docker镜像。
使用命令跑起来:
docker run test:1.0 -d
docker ps // 查看是否成功运行
总结
创建一个自己的docker镜像其实就四步:
- 导入对应的基础镜像
- 编写Dockerfile文件
- 导入需要部署的jar包(上传jar包到服务器)
- docker build -t test:1.0 .
需要注意的是build时,需要在Dockerfile的同级目录下!!!
